创建无模式对话框

V3菱悦619

V3菱悦619

2016-02-19 12:19

人生本是一个不断学习的过程,在这个过程中,图老师就是你们的好帮手,下面分享的创建无模式对话框懂设计的网友们快点来了解吧!

无模式对话框与有模式对话框不同的是在创建后其他窗口都可以继续接收用户输入,因此无模式对话框有些类似一个弹出窗口。创建无模式对话框需要调用
BOOL CDialog::Create( UINT nIDTemplate, CWnd* pParentWnd = NULL );之后还需要调用
BOOL CDialog::ShowWindow( SW_SHOW);进行显示,否则无模式对话框将是不可见的。相关代码如下:

void CYourView::OnOpenDlg(void)

{

         /*假设IDD_TEST_DLG为已经定义的对话框资源的ID号*/

         CTestDlg *dlg=new CTestDlg;

         dlg-Create(IDD_TEST_DLG,NULL);

         dlg-ShowWindows(SW_SHOW);

         /*不要调用 delete dlg;*/

}

在上面的代码中我们新生成了一个对话框对象,而且在退出函数时并没有销毁该对象。因为如果此时销毁该对象(对象被销毁时窗口同时被销毁),而此时对话框还在显示就会出现错误。那么这就提出了一个问题:什么时候销毁该对象。我时常使用的方法有两个:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

在对话框退出时销毁自己:在对话框中重载OnOK与OnCancel在函数中调用父类的同名函数,然后调用DestroyWindow()强制销毁窗口,在对话框中映射WM_DESTROY消息,在消息处理函数中调用delete this;强行删除自身对象。相关代码如下:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

·                void CTestDlg1::OnOK()

·                {

·                         CDialog::OnOK();

·                         DestroyWindow();

·                }

·                 

·                void CTestDlg1::OnCancel()

·                {

·     

展开更多 50%)
分享

猜你喜欢

创建无模式对话框

编程语言 网络编程
创建无模式对话框

无模式对话框的创建分析

编程语言 网络编程
无模式对话框的创建分析

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

无模式对话框的创建与使用

C语言教程 C语言函数
无模式对话框的创建与使用

创建有模式对话框

编程语言 网络编程
创建有模式对话框

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

director使用mui xtra创建对话框

设计软件 平面设计软件 广告设计软件
director使用mui xtra创建对话框

关于对话框

编程语言 网络编程
关于对话框

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

C++中的运算符重载函数基础及其值返回状态

C++中的运算符重载函数基础及其值返回状态

Static Box

Static Box
下拉加载更多内容 ↓