非模态窗口
来源:互联网 发布:c语言开发环境搭建 编辑:程序博客网 时间:2024/05/05 23:44
开发过程中想实现新线程创建子窗口处理子窗口的事情,父窗口仍然可以相应用户请求的功能。
利用“非模态窗口”实现
不多做介绍了,自己了解的也不深入,下面是相关资料链接:
【转载】MFC下的模态与非模态对话框
VC++中SetWindowPos函数详解(设置窗口位置 和非模式关系不大)
MFC子窗口和父窗口(SetParent,SetOwner)
非模态对话框在任务栏上显示
为什么DLL远程创建的非模式对话框一闪就没了,而模式对话框就不会
vc中建立无模式对话框的问题(创建无模式对话框,为什么生成的对话框一闪就没了?)
模式对话框和非模式对话框的区别
从代码上看创建非模式对话框很简单
CMyDialog* m_myDlg;m_myDlg=new CMyDialog(pWnd); //堆分配非模态对话框内存空间, //CMyDialog(CWnd* pParent=NULL)为构造函数m_myDlg->Create(IDD_MYDIALOG,pWnd);m_myDlg->ShowWindow(SW_SHOW);但是如果上面的代码时在一个函数或线程内部执行的话
创建的类对象是存储在局部存储空间的,函数或线程结束后,它的局部存储空间被释放,new出来的对象也就没了
从而导致对话框一闪而过。
解决方案:
1.使用全局变量,即对话框对象使用全局变量。
2.函数或线程中添加消息循环(紧跟在showwindow函数之后即可)
MSG msg; while(GetMessage(&msg,NULL,0,0))//添加消息循环,防止窗口消失 { if(hDlgModeless==0||!IsDialogMessage(hDlgModeless,&msg)) {TranslateMessage(&msg); DispatchMessage(&msg); }}
3.自定义一条消息,在线程中需要创建非模态对话框向应用程序消息队列投递一条自定义消息,在此消息的响应函数中创建。还可以再定义一条消息进行销毁。表示没看懂。。。。。
- 非模态窗口
- 非模态窗口
- 模态窗口和非模态窗口
- 模态窗口和非模态窗口
- 模态窗口和非模态窗口
- 模态窗口和非模态窗口
- js中模态窗口与非模态窗口
- 模态窗口和非模态窗口
- 模态窗口和非模态窗口
- 非模态窗口模拟模态窗口
- 模态窗口与非模态窗口
- C#模态窗口和非模态窗口
- 模态窗口和非模态窗口
- 模态窗口和非模态窗口
- MFC 创建主窗口为非模态窗口
- 创建模态窗口与非模态窗口
- 模态窗口和非模态窗口
- 关闭非模态窗口
- 正则表达式在JAVA中的应用
- 女性驾车时包包该放哪里?
- apache 和IIS端口冲突时如何更改端口
- Bada学习-(十三)终端差异性信息
- jsp入门知识点总结
- 非模态窗口
- C/c++语言绘制sin(x)和cos(x)的方法
- android 学习笔记3
- 几款常见浏览器的个人使用感受和简单对比
- 转来的 Direct X 介绍及其在VC++6.0和VC.NET中的设置 .
- 如何与客户相处
- (2011.10.30)3_a3.cpp —— 循环队列结构的定义
- I2S音频总线学习(二)I2S总线协议
- 应该掌握的基本技能