WEB开发网
开发学院软件开发VC VC初学者入门系列之二:消息循环 阅读

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根据不同的消息给予不同的动作。 

1 2 3 4 5 6  下一页

Tags:VC 初学者 入门

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接