|
|
1
2
首先,我同意其他海报的观点,在主UI线程上显示对话框可能更好。
注意,(2)不应该是必须的,前提是你有(1),但是你提到了MFC,我不记得它的具体行为。它有自己的模式对话框实现,可能与Win32不完全匹配。如果你幸运的话,(1)和(3)就足够了。 |
|
|
2
2
没有可靠的方法在多个线程之间传播GUI模式。每个窗口都由一个通过
模态是通过首先启用对话框窗口,然后禁用其父窗口来实现的。第一步是安全的,而第二步尝试从不是窗口所属线程的线程禁用窗口。因为en-/禁用windows会修改通过
建议的解决方案是将GUI限制在单个线程中,并从工作线程到GUI线程进行通信,让它代表工作线程执行用户交互。最简单的方法就是打电话 SendMessage 从工作线程到块,直到GUI线程的消息处理程序返回。如果在显示对话框时工作线程应继续运行,则可以使用 PostMessage 而是使用 PostThreadMessage 或者向同步对象发送信号,比如 Event Object . |
|
|
3
1
虽然我不知道Server2003上对话框处理的细节,但在主线程上最简单的解决方法是使用自定义窗口消息do
|
|
|
4
0
|