Эта функция производит обработку сообщений для окна. Мы ее связываем с окном при заполнении структуры класса окна 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 для обработки сообщений.