Шаг 56 - Основная функция окна

Эта функция производит обработку сообщений для окна. Мы ее связываем с окном при заполнении структуры класса окна WNDCLASS в поле lpfnWndProc:

WNDCLASS WC;
......
WC.lpfnWndProc = WndProc; 

Вот эта функция WndProc и будет получать сообщения, которые Windows будет отсылать окну. Соответственно эта функция должна быть объявлена ранее. Прототип у этой функции такой:

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

Общий вид для реализации:

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);
}

В этой функции мы обрабатываем сообщения от Windows. При этом, если обработку не совершаем, то вызываем функцию по умолчанию DefWindowProc, которая уммет обрабатывать сообщения по умолчанию.

LRESULT DefWindowProc
(  
	HWND hWnd,	// указатель окна
	UINT Msg,		// идентификатор сообщения
	WPARAM wParam,	// первый параметр сообщения
	LPARAM lParam	// второй параметр сообщения
);

Возврашает результат обработки сообщения. Обычно в функции WndProc организуется огромный switch для обработки сообщений.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 27.01.2001