新建对话框(模态和非模态)

来源:互联网 发布:mac 扫描局域网ip 编辑:程序博客网 时间:2024/06/02 02:29
前提:需要添加弹出对话框按钮的类设为CMainFrame类,对应为MainFrm.h,MainFrm.cpp;
           新弹出的对话框对应的类为CDlg类,对应为Dlg.h,Dlg.cpp。

方法一:新建非模态对话框:
1.新建CDlg类对象。

1.1 在MainFrm.h中添加头文件。

#include "Dlg.h"

1.2 在MainFrm.h中新建public的对象,即

public:CDlg *dlg;

2. 给dlg赋初值。

在CMainFrame类的构造函数中加入如下代码:

dlg = NULL;
3. 在按钮的响应函数中添加如下代码:

void CMainFrame::OnClickButton(){if (NULL == dlg)  {   // 创建非模态对话框实例   dlg = new CDlg();   dlg->Create(IDD_DIALOG,this);  }// 若对话框已打开,则显示非模态对话框dlg->ShowWindow(SW_SHOW);}4.CDlg类析构函数中delete。  代码如下:CDlg::~CDlg(){// 如果非模态对话框已经创建则删除它if (NULL != dlg){// 删除非模态对话框对象delete dlg;}}


方法二:新建模态对话框:
1.在MainFrm.h中加入如下代码:
  #include "Dlg.h"
2.在MainFrm.cpp中按钮的消息处理函数加入以下代码:
void CMainFrame::OnClickButton(){// TODO: Add your control notification handler code hereINT_PTR nRes; // 用于保存 DoModal 函数的返回值CDlg dlg; // 构造对话框类 CTipDlg 的实例nRes = dlg.DoModal(); // 弹出对话框if (IDCANCEL == nRes) // 判断对话框退出后返回值是否为 IDCANCEL,如果是则 return,否则继续向下执行。return;}



完。
0 0