zoukankan      html  css  js  c++  java
  • 无模式对话框和有模式对话框

    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消息会在对话框资源模板上的所有子控件(按钮等)创建完成后,再发送给对话框窗口。

  • 相关阅读:
    element-ui select组件中复选时以字符串形式显示
    node.js入门学习笔记整理
    前端面试整理——javascript算法和测试题
    前端整理——css部分
    前端整理——Vue部分
    前端面试题整理——javaScript部分
    React 入门学习笔记整理目录
    element-ui Carousel 走马灯源码分析整理笔记(十一)
    element-ui Collapse 折叠面板源码分析整理笔记(十)
    element-ui Steps步骤条组件源码分析整理笔记(九)
  • 原文地址:https://www.cnblogs.com/zjzsky/p/3472844.html
Copyright © 2011-2022 走看看