将消息发布到模型对话框
Post messages to model dialog
我计划创建无模式对话框,并从另一个线程接收消息。根据我对创建无模式对话框的理解,我需要在CWinThread派生的类对象中创建CWinThread和一些框架或对话框。但是我真的需要创建框架/对话框吗?为什么我不能将消息直接发布到CWinThread派生的类对象?
接收消息不需要对话框,但需要窗口句柄。该窗口句柄不需要与视觉对象相关联。我认为你需要的是一个只显示信息的窗口。
在MFC中,您可以使用CWnd
使用CreateEx
方法来创建仅消息窗口。将HWND_MESSAGE
传递给CreateEx
的hWndParent
参数。
的确,您可以创建一个隐藏的无模式对话框来接收消息。然而,这是非常浪费的。更重要的是,MFC是围绕着对话框在主UI线程中创建的概念设计的。因此,出于多种不同的原因,您确实希望避免创建仅用于在线程中接收消息的对话框。使用仅消息窗口。
消息处理程序向窗口处理程序发布/发送消息,因此您需要一个占位符窗口来接收该消息并根据需要进行处理。
您可以使用PostThreadMessage向CWinThread派生的对象发布消息。但在某些情况下,这是危险的,在这里讨论:
http://www.codeproject.com/Articles/225755/PostThreadMessage-Demystified
相关文章:
- 如何在Qbutton的帮助下更改Q对话框的宽度
- 当对话框被接受时,如何用参数调用槽
- WinAPI 在单击第一个对话框上的按钮控件并销毁第一个对话框后创建第二个对话框
- 如何多次询问来自QML对话框的输入?
- 选择文件对话框错误
- 自定义对话框(源自QDialog)不会关闭(Android)
- 如何在 MFC 对话框中使用 OnDraw
- 在C++中创建文件夹选取器对话框的最简单方法是什么?
- 从资源视图访问对话框时出现问题
- 如何检测窗口当前是否正在运行模式对话框?
- "最小化"按钮不会出现在 MFC 对话框中
- 如何获取QNetworkConfiguration UserChoice对话框?
- 表单显示对话框函数错误,并且不执行下面的语句
- 如何在 VC6 中的对话框中将图标设置为按钮
- C++/Win32 构造函数不使用从对话框获取的字符串初始化变量
- 在 Win32 应用中,如果未选择文件夹并且用户单击"确定",则文件夹选择对话框将关闭
- 模型对话框移动到主窗口后面的Qt错误
- MFC在切换视图时如何关闭无模型对话框
- 如何基于类定义构建对话框窗口?(比如Django的模型系统)
- 将消息发布到模型对话框