windows 程序的本体与操作系统之间的关系

时间:2014-05-01 12:49:00   收藏:0   阅读:498
mamicode.com,码迷
 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 }
View Code

 

操作系统维持两个消息队列,系统消息队列和应用消息队列,Windows操作系统将外界输入的消息放入到系统消息队列中,将应用产生的消息放到应用消息队列中,这些都是Windows的USER Module 模块的协助下完成的,然后Windows应用程序的winmain函数是主体,大概内容如下:

 

 

代码中的GetMessage从消息队列中获取消息,然后再DispatchMessage中就将消息作为参数传给WndProc函数了。WndProc是一个回调函数,在USER Module中有指向该函数的指针,在特定的事件或条件发生时由操作系统就调用的WndProc,这时候就将传进来的指定消息消息进行了处理。

 

windows 程序的本体与操作系统之间的关系,码迷,mamicode.com

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!