| Форум| Гостевая| Ссылки| Программы| Исходные тексты| Наши партнеры.|
   
| Главная| Рассылки| Услуги| Библиотека| Новости| Авторам| Программистам| Студентам|
delphi c++ assembler
 

Шаг 4 - Окно Windows на С.

В этом шаге мы создадим окно используя только структуры и функции Win Api. Это позволит нам посмотреть как все-таки устроена программа для Windows на другом уровне. Создаем приложение Win 32 Application и далее как Simple application. А вот код.
// СWin.cpp : Defines the entry point for the application.
//

#include "stdafx.h"
#include "windows.h"
#include "windowsx.h"


LRESULT CALLBACK WndProc(HWND, UINT, WPARAM,LPARAM);

int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
 	HWND hwnd;
	MSG msg;
	WNDCLASS w;
        memset(&w,0,sizeof(WNDCLASS));
	w.style = CS_HREDRAW | CS_VREDRAW;
	w.lpfnWndProc = WndProc;
	w.hInstance = hInstance;
	w.hbrBackground = GetStockBrush(WHITE_BRUSH);
	w.lpszClassName = "C Windows";
	RegisterClass(&w);
	hwnd = CreateWindow("C Windows","C Windows", WS_OVERLAPPEDWINDOW,
		10,10,600,480,NULL,NULL,hInstance,NULL);
	ShowWindow(hwnd,nCmdShow);
	UpdateWindow(hwnd);
	while(GetMessage(&msg,NULL,0,0))
	{
		TranslateMessage(&msg);
		DispatchMessage(&msg);
	}
	return msg.wParam;
}

LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wparam,LPARAM lparam)
{
	if (Message == WM_DESTROY )
	{
		PostQuitMessage(0);
		return 0;
	}
	return DefWindowProc(hwnd,Message,wparam,lparam);
}
Как видите приложение начинается с функции WinMain. Далее мы заполняем структуру окна WNDCLASS, в которую передаем функцию обработки сообщений w.lpfnWndProc = WndProc; после этого создаем окно CreateWindow, выводим на экран ShowWindow(hwnd,nCmdShow); и запускаем обработчик сообщений. Сначала сообщения попадают на обработку в окно, и если это сообщение закрытия, то if (Message == WM_DESTROY ) прекращает выполнение программы.

Этот код можно компилировать и запускать.


Загрузить проект | Предыдущий Шаг | Следующий Шаг | Оглавление

By Artem.
Используются технологии uCoz
 

Rambler's Top100 Rambler's Top100

©  Adept Design Studio

Используются технологии uCoz