VC初学者入门系列之二:消息循环
2006-07-20 11:38:19 来源:WEB开发网核心提示:适用读者:VC初学者并有C++基础,一、传统SDK程序的消息循环在传统的SDK程序中,VC初学者入门系列之二:消息循环,消息循环是很简单的,也许你不信,那我们就看看下面这段代码吧:#include <windows.h>LRESULT CALLBACK WndProc (HWND, UINT, WPARAM
适用读者:VC初学者并有C++基础。
一、传统SDK程序的消息循环
在传统的SDK程序中,消息循环是很简单的,也许你不信,那我们就看看下面这段代码吧:
#include <windows.h>
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
static TCHAR szAppName[] = TEXT ("HelloWin") ;
WNDCLAS wndclass ;
wndclass.style = CS_HREDRAW | CS_VREDRAW ;
wndclass.lpfnWndProc = WndProc ;
wndclass.lpszClassName = szAppName ;
RegisterClass (&wndclass);
hwnd = CreateWindow( szAppName,……,NULL);
ShowWindow (hwnd, iCmdShow) ;
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)
{
switch (message)
{
case WM_CREATE:
………
case WM_PAINT:
………
case WM_DESTROY:
PostQuitMessage (0) ;
return 0 ;
}
return DefWindowProc (hwnd, message, wParam, lParam) ;
}
在WinMain 中 CreateWindow通过一个参数将创建的窗口和窗口类(见"窗口类的诞生"一文)联系起来,这样该窗口的所有消息都将发送到该窗口类的窗口函数WndProc,其后WndProc根据不同的消息给予不同的动作。
更多精彩
赞助商链接