我的程序具有多个线程。我使用的消息框来显示信息给用户。反正是有(或消息框的替代),而消息框仍然在屏幕上可见由用户我可以有另一个线程更新/改变消息框显示文本?

有帮助吗?

解决方案

经由GetCurrentThreadId()和调用SetWindowsHookEx()使用线程特定钩子,可以钩住的MessageBox()在内部接收,以及到对话框的主窗口句柄,然后获得增益接入消息可以访问所有的对话框的子控件。然后,您可以根据需要自定义对话框及其控制。这种技术通常用于实现自闭合对话框(MessageBoxTimeout()之前被引入),自定义按钮的文字等。

其他提示

如果您使用的是标准的Win32消息框,我不相信这是改变文本一旦已经显示框(输入模态的消息泵)的任何方式。

我建议你创建自己的窗口,倾听从您的其他线程的消息/更新。这样,你在控制。

我不相信有一个直接的方式来做到这一点,你也许可以尝试获取窗口句柄,但这是太乱了。最好的办法是让你,你有超过它的总控制,以创建自己的对话框。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top