CWnd与CDialog-DoModal与ShowWindow区别
1.使用Domodal()时:
(1)Domodal()会阻塞调用函数,所以使用局部变量和成员变量都可以;
(2)Domodal()前不能调用Create,否则崩溃,不知道为啥
使用ShowWindow时:
(1)只能使用成员变量方式
ShowWindow不会阻塞调用函数,调用完就结束了,局部变量,调用完直接销毁了,窗口就闪一下就没了,局部指针,调用完函数返回了,内存
没有手动释放;
(2)ShowWindow前必须调用Create保证窗口已经创建了
----------------
例子:
[
CDialog
方式1:
CMydlg dlg;
dlg.Domodal();//Domodal方式,会阻塞,Domodal()结束了调用函数才会返回;另外Domodal()里面包含创建和显示
dlg.Create(CMydlg::IDD, NULL);//需要先创建
dlg.ShowWindow(SW_SHOW);//不会阻塞,调用函数直接返回
方式2:
CMydlg *m_pDlg = new CMydlg();
m_pDlg->Domodal();//Domodal方式,会阻塞,Domodal()结束了调用函数才会返回
m_pDlg->Create(CMydlg::IDD, NULL);//需要先创建
m_pDlg->ShowWindow(SW_SHOW);//不会阻塞,调用函数直接返回
说明:Domodal()前不能调用Create,否则崩溃,不知道为啥;ShowWindow(SW_SHOW)前必须调用Create保证已经创建好了
]
CWnd与CDialog-DoModal与ShowWindow区别相关推荐
- C++API【CDialog::DoModal()】【AfxEnableControlContainer 函数】
SYD8821是具有全球领先低功耗(RX 2.4mA @-94.5dBm灵敏度,TX 4.3mA @0dBm输出功率)的蓝牙低功耗SOC芯片,在极低电流下实现了优异的射频性能,搭配176kB SRAM ...
- [MFC] CDialog::DoModal()函数用法
5.2 创建有模式对话框 使用有模式对话框时在对话框弹出后调用函数不会立即返回,而是等到对话框销毁后才会返回(请注意在对话框弹出后其他窗口的消息依然会被传递).所以在使用对话框时其他窗口都不能接收用户 ...
- CWnd的派生类-3、CDialog类
对话框与普通窗口的区别仅在于,对话框是通过对话框模板建立起来的.只需要一个以模板为实参的创建命令,如CDialog::Create(),就可以完成对话框窗口及其子控件的创建工作,所有创建细节都由对话框 ...
- 模态对话框和非模态对话框区别
按工作方式不同,可将对话框分成两类: ??模式对话框(modal dialog box模态对话框):在关闭模式对话框之前,程序不能进行其他工作(如一般的"打开文件"对话框) ? ...
- 模态对话框和非模态对话框的区别1
模态对话框就是指那种"显示出来就不可以点选位于其下面的对话框"的对话框:反之的就是非模态对话框. 两者的区别: 一. 非模态对话框的模板必须具有Visible风格(Visible= ...
- 模态对话框和非模态对话框的区别
模态对话框和非模态对话框的区别 假设对话框类名为:CTestDlg 1,如果是模态对话框: CTestDlg ctd;//创建该对话框对像 ctd.DoModale(); 2,如果是非模态的: C ...
- 模态对话框与非模态对话框的区别 1
特点: 模式对话框(modal dialog box模态对话框):在关闭模式对话框之前,程序不能进行其他工作(如一般的"打开文件"对话框) 阻塞 无模式对话框(modeless d ...
- 总结OnOK()、OnCancel()、OnClose()、OnDestroy()之间的区别(转)
目录(?)[+] cDialogonokenddialogdestroywindow区别 收藏 1摘要 2模式对话框的显示 3模式对话框的循环等待 4模式对话框的循环终止 5与OK和Cancle按钮的 ...
- MFC 教程【12_对话框和对话框类CDialog 】
对话框和对话框类CDialog 对话框经常被使用,因为对话框可以从模板创建,而对话框模板是可以使用资源编辑器方便地进行编辑的. 模式和无模式对话框 对话框分两种类型,模式对话框和无模式对话框. 模式对 ...
- 对话框程序, 在 OnInitDialog的最后 showWindow(SW_HIDE),不管用的原因
我研究过,原因及隐藏方法 . MFC对话框应用程序启动时在OnInitDialog()之后会显示对话框的原因如下 MLF_SHOWONIDLE标志 int CDialog::DoModal() // ...
最新文章
- C++库文件和头文件编写教程
- Linux系统调优概述
- Docker学习笔记_安装和使用Apache
- 43. ExtJs控件属性配置详细
- 通过例子理解事务的4种隔离级别
- 沃尔沃汽车警告称:半导体短缺将持续到明年
- oracle hwm的位置,Oracle 高水位(HWM)教程(2)
- python-函数入门(二)
- php fpm高并发,php-fpm 高并发、502解决方案
- Asp.Net如何实现发送邮件 -详解
- 创作gtk源码级vim帮助文档 tags
- 贝叶斯算法详解和拉普拉斯平滑
- matlab线性平面映射求通项_MATLAB数学建模必备算法--层次分析法AHP
- 回归中的相关度和R平方值
- Vue项目生成二维码
- ATT加入Verizon与KT的合作圈,共同开发SDN/NFV/5G
- 猿创征文 | 专做药品生产研发的程序员
- 信息系统项目管理之10大管理的过程解释
- Linux容器家族之Rocket
- 从“地球漫游计划”看城市,如何利用视频监控让城市直播更简单?