zoukankan      html  css  js  c++  java
  • 显示模态模态对话框和非模态对话框

    模态对话框类和非模态对话框类的创建是一样的,也就是说当有一个对话框类(假设名称为CMyDialog),既可以用它来创建模态对话框实例并显示,

    也可以用它来创建非模态对话框实例显示。

    1、创建模态对话框实例并显示

          CMyDialog   Dlg ;

          Dlg.DoModal();

    也就是说只需要调用对话框类的DoModal()即可实现创建并显示模态对话框。

    2、创建非模态对话框实例并显示

    方法一:设使用CMyDialog类的CUser,定义和实现CUser的文件分别是 User.h和User.cpp,定义(或者说声明)对话框类CMyDialog的文件是MyDialog.h,对话框类的资源ID是IDD_MYDIALOG.

    则,首先在User.h中添加 #include “MyDialog.h” ,然后声明一个类的实例CMyDialog   Dlg,    注:若是类的成员则应在相应构造函数中初始

          再在User.cpp中:                    

    if (!Dlg.m_hWnd)
    {
       Dlg.Create(IDD_MYDIALOG); //创建对话框

    }

    Dlg.ShowWindow(SW_SHOW);//显示对话框窗口

    CWnd::ShowWindow(SW_SHOW);

    创建和显示完成。

    方法二:利用对话框类的指针动态创建

       设使用CMyDialog类的类是CUser,定义和实现CUser的文件分别是 User.h和User.cpp,定义(或者说声明)对话框类CMyDialog的文件是MyDialog.h,对话框类的资源ID是IDD_MYDIALOG.

    则,首先在User.h中添加 #include “MyDialog.h” ,然后声明一个指向类的指针CMyDialog*   Dlg,在CUsr的构造函数中初始化 ;

    并在CUser的析构函数中添加如下代码:

    if (NULL != m_pTipDialog)
    {
    delete m_pTipDialog;
    }

    再在CUser.cpp中:

    INT_PTR nRes(0);
    if ( NULL == m_pTipDialog) //如果没有非模态对话框则创建非模态对话框
    {
    m_pTipDialog = new CTipDialog();

    nRes = m_pTipDialog->Create(IDD_TIP_DIALOG, this );
    }
    m_pTipDialog->ShowWindow(SW_SHOW); //显示非模态对话框

    创建和显示完成。

  • 相关阅读:
    Putty·Network error:Software caused connection abort
    VSCode·搭建Java开发环境
    MSSQL·将一对多的数据合并为以指定分隔符的数据
    技能Get·Windows10将任何格式文件固定到开始屏幕
    MSSQL·查询TSQL语句执行时间的三种方法
    Javac·编码GBK的不可映射字符
    傅里叶变换、拉氏变换、z变换的含义
    宏、内联函数和普通函数的区别
    OpenGL中创建GLUT菜单
    在PC安裝Android系統+軟體
  • 原文地址:https://www.cnblogs.com/fwy-walking/p/4023114.html
Copyright © 2011-2022 走看看