windows 程序的本体与操作系统之间的关系
时间:2014-05-01 12:49:00
收藏:0
阅读:498
1 WinMain(hInst,hPrev,……) 2 { 3 MSG msg; 4 RegisterClass(……); 5 CreateWindow(……); 6 ShowWindow(……); 7 UpdateWindow(……); 8 while(GetMessage(……)) 9 { 10 TranslateMessage(……); 11 DispatchMessage(……); 12 } 13 return msg.wParam; 14 } 15 16 Window Procedure 17 18 WndProc(hwnd,msg,wParam,lParam) 19 { 20 switch(msg): 21 case WM_CREATE:……; 22 case WM_COMMAND:……; 23 case WM_LBUTTONDOWN:……; 24 case WM_PAINT:……; 25 case WM_CLOSE:……; 26 case WM_DESTROY:……; 27 default:return DefWiindowProc(……); 28 }
操作系统维持两个消息队列,系统消息队列和应用消息队列,Windows操作系统将外界输入的消息放入到系统消息队列中,将应用产生的消息放到应用消息队列中,这些都是Windows的USER Module 模块的协助下完成的,然后Windows应用程序的winmain函数是主体,大概内容如下:
代码中的GetMessage从消息队列中获取消息,然后再DispatchMessage中就将消息作为参数传给WndProc函数了。WndProc是一个回调函数,在USER Module中有指向该函数的指针,在特定的事件或条件发生时由操作系统就调用的WndProc,这时候就将传进来的指定消息消息进行了处理。
评论(0)