• 无模式对话框和有模式对话框


    1、两者区别

      无模式对话框 - 对话框显示后,不影响其它窗口的使用
          有模式对话框 - 对话框显示后,会将其它窗口禁止输入操作.

    2、两者的创建差异

      无模式对话框 -使用CreateDialog函数

      有模式对话框 -使用DialogBox函数

    3、创建过程

      无模式对话框:HWND CreateDialog(HINSTANCE hInstance,//应用程序实例句柄
                          LPCTSTR lpTemplate,//对话框的资源ID
                          HWND hWndParent,//父窗口
                          DLGPROC lpDialogFunc //对话框的窗口处理函数

                        );     返回值是创建好的对话框的窗口句柄。

      有模式对话框:int DialogBox(HINSTANCE hInstance, //应用程序句柄
                      LPCTSTR lpTemplate,//对话框资源ID字符串
                      HWND hWndParent,//父窗口句柄
                      DLGPROC lpDialogFunc //对话框窗口处理函数

                    );

    4、定义对话框窗口处理函数

      两种对话框都需要定义对话框处理函数:BOOL CALLBACK DialogProc(HWND hwndDlg,  // 对话框句柄
                                         UINT uMsg,     // 消息
                                         WPARAM wParam, // 当前接受输入焦点子控件窗口句柄
                                         LPARAM lParam  // 创建时附带的参数

                                       );

    5、关闭对话框

      由于有模式对话框DialogBox是阻塞函数,执行后会等候返回,只有在EndDialog结束对话框,DialogBox才会返回。

      无模式对话框和有模式对话框都是使用EndDialog来关闭对话框。

      BOOL EndDialog( HWND hDlg, //关闭对话框的窗口句柄
                            int nResult //DialogBox函数的返回值

               );      

      

    6、对话框中的消息

      使用WM_INITDIALOG消息,可以在对话框创建完成后,进行数据初始化。

      它与WM_CREATE不同之处是,WM_INITDIALOG消息会在对话框资源模板上的所有子控件(按钮等)创建完成后,再发送给对话框窗口。

  • 相关阅读:
    提升CPU性能的几个方面
    浅谈CPU性能问题
    计算机组成原理 1— 冯.诺依曼体系结构
    让你的微信公众平台中支持QQ在线客服功能
    common.js
    layui中解决ashx筛选数据时中文乱码问题
    html 使用rem开发
    html有用的占位符
    前端教学网站
    纯js实现回到锚点
  • 原文地址:https://www.cnblogs.com/zjzsky/p/3472844.html
Copyright © 2020-2023  润新知