模态对话框 DoModal的用法 (vs2008)与非模态对话框

您所在的位置:网站首页 知乎跳出的对话框怎么关闭啊 模态对话框 DoModal的用法 (vs2008)与非模态对话框

模态对话框 DoModal的用法 (vs2008)与非模态对话框

2024-05-31 17:37| 来源: 网络整理| 查看: 265

Windows对话框分为两类:模态对话框和非模态对话框。

       模态对话框,当它弹出后,本应用程序其他窗口将不再接受用户输入,只有该对话框响应用户输入,在对它进行相应操作退出后,其他窗口才能继续与用户交互。

       非模态对话框,它弹出后,本程序其他窗口仍能响应用户输入。非模态对话框一般用来显示提示信息等。

弹出模态对话框

   弹出对话框比较关键的一个函数,就是对话框类的DoModal()函数。CDialog::DoModal()函数的原型为:

       virtual INT_PTR DoModal();   

      DoModal是一个函数,可以用来显示一个模态对话框。此成员函数用来显示一个模态对话框。其返回值对应于用来关闭对话框的控件的ID。  此函数返回后,Windows响应这个对话框,所有的属性页都会被销毁。要显示一个非模态对话框,请调用Create来代替此函数。

     返回值:如果函数成功则返回IDOK或IDCANCEL;否则返回0或-1。IDOK和IDCANCEL都是常量,它表明用户选择的是OK按钮还是Cancel按钮。

       调用了它对话框就会弹出,返回值是退出对话框时所点的按钮的ID,比如,我们点了“退出”按钮,那么DoModal返回值为IDCANCEL。

代码:

首先新建一个dialog,取名为TipDlg,并对该对话框添加新类

1 void CTestDlg::OnBnClickedBtnAdd() 2 { 3 // TODO: 在此添加控件通知处理程序代码、 4 5 ////////////////////////////////////////// 6 INT_PTR nRes; //用于保存DoModal函数的返回值 7 8 CTipDlg tipDlg; //构造对话框CTipDlg的实例 9 nRes=tipDlg.DoModal(); //弹出对话框 10 if(IDCANCEL==nRes) //判断对话框退出后返回值是否为IDCANCEL,如果是证明选择了退出键返回IDCANCEL,则执行return,否则继续向下执行 11 return; 12 /*要执行的代码*/ 13 }

非模态对话框的创建:http://www.jizhuomi.com/software/162.html

CDialog7为新建的对划框类

CDialog7 *dlg7=new CDialog7; //创建非模态对话框实例 dlg7->Create(IDD_DIALOG7,this); dlg7->ShowWindow(SW_SHOW); //显示非模态对话框*/



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3