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区别相关推荐

  1. C++API【CDialog::DoModal()】【AfxEnableControlContainer 函数】

    SYD8821是具有全球领先低功耗(RX 2.4mA @-94.5dBm灵敏度,TX 4.3mA @0dBm输出功率)的蓝牙低功耗SOC芯片,在极低电流下实现了优异的射频性能,搭配176kB SRAM ...

  2. [MFC] CDialog::DoModal()函数用法

    5.2 创建有模式对话框 使用有模式对话框时在对话框弹出后调用函数不会立即返回,而是等到对话框销毁后才会返回(请注意在对话框弹出后其他窗口的消息依然会被传递).所以在使用对话框时其他窗口都不能接收用户 ...

  3. CWnd的派生类-3、CDialog类

    对话框与普通窗口的区别仅在于,对话框是通过对话框模板建立起来的.只需要一个以模板为实参的创建命令,如CDialog::Create(),就可以完成对话框窗口及其子控件的创建工作,所有创建细节都由对话框 ...

  4. 模态对话框和非模态对话框区别

    按工作方式不同,可将对话框分成两类:  ??模式对话框(modal dialog box模态对话框):在关闭模式对话框之前,程序不能进行其他工作(如一般的"打开文件"对话框)  ? ...

  5. 模态对话框和非模态对话框的区别1

    模态对话框就是指那种"显示出来就不可以点选位于其下面的对话框"的对话框:反之的就是非模态对话框. 两者的区别: 一. 非模态对话框的模板必须具有Visible风格(Visible= ...

  6. 模态对话框和非模态对话框的区别

    模态对话框和非模态对话框的区别 假设对话框类名为:CTestDlg  1,如果是模态对话框: CTestDlg ctd;//创建该对话框对像  ctd.DoModale(); 2,如果是非模态的: C ...

  7. 模态对话框与非模态对话框的区别 1

    特点: 模式对话框(modal dialog box模态对话框):在关闭模式对话框之前,程序不能进行其他工作(如一般的"打开文件"对话框) 阻塞 无模式对话框(modeless d ...

  8. 总结OnOK()、OnCancel()、OnClose()、OnDestroy()之间的区别(转)

    目录(?)[+] cDialogonokenddialogdestroywindow区别 收藏 1摘要 2模式对话框的显示 3模式对话框的循环等待 4模式对话框的循环终止 5与OK和Cancle按钮的 ...

  9. MFC 教程【12_对话框和对话框类CDialog 】

    对话框和对话框类CDialog 对话框经常被使用,因为对话框可以从模板创建,而对话框模板是可以使用资源编辑器方便地进行编辑的. 模式和无模式对话框 对话框分两种类型,模式对话框和无模式对话框. 模式对 ...

  10. 对话框程序, 在 OnInitDialog的最后 showWindow(SW_HIDE),不管用的原因

    我研究过,原因及隐藏方法 . MFC对话框应用程序启动时在OnInitDialog()之后会显示对话框的原因如下 MLF_SHOWONIDLE标志 int CDialog::DoModal() // ...

最新文章

  1. C++库文件和头文件编写教程
  2. Linux系统调优概述
  3. Docker学习笔记_安装和使用Apache
  4. 43. ExtJs控件属性配置详细
  5. 通过例子理解事务的4种隔离级别
  6. 沃尔沃汽车警告称:半导体短缺将持续到明年
  7. oracle hwm的位置,Oracle 高水位(HWM)教程(2)
  8. python-函数入门(二)
  9. php fpm高并发,php-fpm 高并发、502解决方案
  10. Asp.Net如何实现发送邮件 -详解
  11. 创作gtk源码级vim帮助文档 tags
  12. 贝叶斯算法详解和拉普拉斯平滑
  13. matlab线性平面映射求通项_MATLAB数学建模必备算法--层次分析法AHP
  14. 回归中的相关度和R平方值
  15. Vue项目生成二维码
  16. ATT加入Verizon与KT的合作圈,共同开发SDN/NFV/5G
  17. 猿创征文 | 专做药品生产研发的程序员
  18. 信息系统项目管理之10大管理的过程解释
  19. Linux容器家族之Rocket
  20. 从“地球漫游计划”看城市,如何利用视频监控让城市直播更简单?

热门文章

  1. 安卓音频开发(四)使用lame把wav转mp3
  2. 如何给公司节约成本,搭建免费开源监控系统uptime-kuma
  3. 2022年怎么申请企业邮箱?企业云邮箱申请?
  4. 关于工作后定居城市的思考以及房价…
  5. 发光二极管压降, 也就是最小导通电压
  6. diy服务器组装,服务器装机 DIY
  7. 搭建表白网站详细教程,小白也可以学懂!!!!
  8. 天才少女谷爱凌夺金!母亲毕业于北大,父亲毕业于哈佛,她将入读斯坦福…...
  9. NetBeans常用命令总结
  10. GSM和GPRS有什么区别