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,这时候就将传进来的指定消息消息进行了处理。
windows 程序的本体与操作系统之间的关系,码迷,mamicode.com
时间: 2024-11-03 14:21:08