首页 > 代码库 > windows 程序的本体与操作系统之间的关系
windows 程序的本体与操作系统之间的关系
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,这时候就将传进来的指定消息消息进行了处理。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。