我有点不明白,我在学Windows核心编程(第一章)的ErrorShow程序时,整个程序,我没有看到消息循环,只有窗口过程,只知道好像调用了DialogBoxParam后,整个程序好像就可以跑起来了,DialogBoxParam难道就跟据我的资源文件的描述就把那个对话框显示出来了,并且有默认的消息循环。麻烦各位解释一下。对话框的消息循环到底是怎么一回事?

解决方案 »

  1.   

    http://topic.csdn.net/u/20080627/11/ee4fedfe-ecbd-43bf-899b-ce42447280d2.html
      

  2.   

    INT_PTR DialogBoxParam(          HINSTANCE hInstance,
        LPCTSTR lpTemplateName,
        HWND hWndParent,
        DLGPROC lpDialogFunc,
        LPARAM dwInitParam
    );
    DLGPROC不就是对话框的窗口过程吗?
      

  3.   

    该函数根据对话框模板资源创建一个模态的对话框。在显示对话框之前,函数把一个应用程序定义的值作为WM_INITDIALOG消息的IParam参数传到对话框过程,应用程序可用此值来初始化对话框控制,它的第四个参数就是指向对话框过程的指针,也就是对话框窗口的窗口消息处理函数,所有的消息处理都只能放在这里面,所有的事件都在这里面响应处理,如果指定了dwInitParam的值,这里就当然要处理WM_INITDIALOG消息,否则白指定dwInitParam参数了。dwInitParam 向WM_INITDIALOG消息传送的LPARAM参数,有关更详细的关于对话框过程的信息,在DialogProc函数里面
      

  4.   

    消息循环肯定是隐藏在其中了,比如通过某个lpfunc的指针变量指向一个默认的窗口处理程序。不要只从表面上看现象。