MFC的DoModal(转)】的更多相关文章

DoModal会产生模态对话框(有模式的对话框,有“是”或者“否”供用户选择),函数运行到此处后不会马上返回,会等待用户的响应(响应后对话框销毁),在此对话框未销毁前,其他窗口不会接收到用户的输入(注意对话框弹出后,其他窗口的消息传递不受影响). CDialog::DoModal()的返回值为IDOK,IDCANCEL.表明操作者在对话框上选择“确认”或是“取消”.由于在对话框销毁前DoModal不会返回,所以可以使用局部变量来引用对象.在退出函数体后对象同时也会被销毁. 使用有模式对话框需要注…
前言 在开发Windows引用程序的时候,在一些需要用户确认,或者提示用户注意的场合,经常使用模态对话框,或者叫模态窗口.在绝大多数情况下,模态窗口给开发人员带来了极大的便利,并且在某些应用上有不可替代的优势.然而凡事有利必有弊,如果不正确地使用模态窗口,却有可能带来某些严重问题,甚至可能引起程序崩溃.要想知道为什么模态窗口可能带来某些严重问题,就必须首先了解模态窗口的实现原理.因此本文将首先介绍模态窗口实现原理,然后分析为什么会带来问题. 原理 知道了原理,一切就可迎刃而解.了解了原理,就可以…
dlg.DoModal()截住了界面消息,所以返回时原来的pMsg的内容已经更改了,消息,窗口句柄都不在是if以前的值了,而且窗口句柄应该是对话框里的子窗口的句柄,所以调用CFrameWnd::PreTranslateMessage(pMsg);  时pMsg的窗口句柄是个无效值(窗口已销毁)        BOOL CViewUP::PreTranslateMessage(MSG* pMsg)  {  if (pMsg->message == WM_KEYDOWN)  {   if(pMsg-…
原文:https://blog.csdn.net/guoguojune/article/details/45332511 dlg.DoModal()截住了界面消息,所以返回时原来的pMsg的内容已经更改了,消息,窗口句柄都不在是if以前的值了, 而且窗口句柄应该是对话框里的子窗口的句柄,所以调用CFrameWnd::PreTranslateMessage(pMsg);  时pMsg的窗口句柄是个无效值(窗口已销毁)  非常对! 目前我觉得两种解决方式: 方式一: if (pMsg-> messa…
新建一个基于对话框的MFC应用程序,在App的Initinstance中调用对话框DoModal()来显示对话框,这是框架的内容,应用程序框架生成的全部是正常的. 当把我对话框的资源文件提取到一个资源dll中(参见文章:http://www.cnblogs.com/MakeView660/p/6045949.html)去时,对话框无法打开了,DoModal()返回值为-1 解决方法:把m_pMainWnd = &dlg删掉 原因:用该成员变量m_pMainWnd 去存储你的线程主窗口对象.当和m…
Questions: I'm using MFC CDialog/CDialogEx to show a modal dialog with DoModal.usually it works without problems, but sometimes, the dialog wont show up until I press ALT key. the scenarios is, I have a timer in the parent window, and doing some work…
==================================声明================================== 本文版权归作者所有 未经作者授权 请勿转载 保留法律追究的权利 本文原创,已获得转载授权的,必须在正文中显要地注明作者和出处,并保证文章(包括本声明)的完整性. 被授权人不可再次授权第三方. 未经作者授权请勿修改(包括本声明),保留法律追究的权利. 未经作者授权请勿用于学术性引用. 未经作者授权请勿用于商业出版.商业印刷.商业引用以及其他商业用途.    …
最近在做MFC 界面开发. 在一个CDialog窗口DoModal模态显示时, 会将次级窗口带出闪现(比如将一个窗口active, 然后点击我现在程序需要弹框的按钮,弹出弹出正常,但原来active的窗口会有一次闪现).几经周折, 才发现是因为Dialog窗口中一个控件属性中包括WS_EX_TOPMOST,且初始为WS_VISIBLE. 只需将初始的WS_VISIBLE去除即可…
树形控件可以用于树形的结构,其中有一个根接点(Root)然后下面有许多子结点,而每个子结点上有允许有一个或多个或没有子结点.MFC中使用CTreeCtrl类来封装树形控件的各种操作.通过调用BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );创建一个窗口,dwStyle中可以使用以下一些树形控件的专用风格: TVS_HASLINES 在父/子结点之间绘制连线TVS_LINESATROOT 在根/子结…
http://www.cppblog.com/bestcln/articles/83189.html 1 几何对象的结构和类 为了使用绘图函数,应该先了解绘图所用到的几种表示几何对象的结构和类.这些结构和类分别定义在头文件windef.h和afxwin.h中. 1.点 1)点结构POINT 点数据结构POINT用来表示一点的x.y坐标: typedef struct tagPOINT { LONG x; LONG y; } POINT; 2)点类CPoint 点类CPoint为一个没有基类的独立…