zoukankan      html  css  js  c++  java
  • 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 }
    View Code

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

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

  • 相关阅读:
    使用Junit对Spring进行单元测试实战小结
    【VBA编程】02.调试VBA程序
    【VBA编程】01.第一个VBA程序Hello world
    VBA验证工作表是否存在
    VBA对指定单元格填充颜色并且赋值
    Excle中range的一些用法
    Debug.print的用法
    EXCLE图形插入实例
    DB2建立不记录日志的表
    Excle快速输入√与×
  • 原文地址:https://www.cnblogs.com/hackerl/p/3701347.html
Copyright © 2011-2022 走看看