我的程序有多個線程。我正在使用messagebox向用戶顯示信息。無論如何(或消息框的替代方案),我可以讓另一個線程更新/更改消息框顯示文本,同時消息框仍在屏幕上並且由用戶可見嗎?win32:更改MessageBox文本?
0
A
回答
1
通過GetCurrentThreadId()和SetWindowsHookEx()使用線程特定的鉤子,可以鉤住MessageBox()在內部接收到的消息,以及訪問對話框的主窗口句柄,然後獲得對所有對話框的子控件。然後,您可以根據需要自定義對話框及其控件。此技術通常用於實現自閉合對話框(在引入MessageBoxTimeout()之前),自定義按鈕的文本等。
5
如果您使用的是標準Win32消息框,我不相信在顯示框(您輸入模態消息泵)後,有任何方法可以更改文本。
我建議你創建自己的窗口,用於偵聽來自其他線程的消息/更新。這樣你就可以控制。
0
我不相信有一個直接的方法來做到這一點,你可能會嘗試獲得窗口句柄,但這太麻煩了。您最好的選擇是創建您自己的對話框,以便您完全控制它。
相關問題
- 1. Win32 MessageBox截斷文本
- 2. 更改MessageBox按鈕文本的語言
- 3. 如何顯示Win32 MessageBox?
- 4. Win32 MessageBox沒有出現
- 5. Inno Setup - 更改MessageBox語言
- 6. 如何更改MessageBox位置?
- 7. 如何更改nsis中的messagebox控件的按鈕文本?
- 8. 字體更改後更新文本字段(Win32)
- 9. 如何更改基本文本窗口中的文本大小win32 C++
- 10. C++ Win32 MessageBox奇怪的輸出
- 11. 將Win32 MessageBox顯示在其他程序
- 12. 在Win32中,如何使用「更改顏色」對話框來更改STATIC文本?
- 13. 在Win32中,如何更改STATIC文本的顏色?
- 14. 在C++ \ Win32中編輯控制文本已更改消息
- 15. Messagebox修改phone7
- 16. 更改Win32菜單顏色
- 17. 更改來源? Win32的?
- 18. 使用MessageBox,更改爲'是'或'否'
- 19. 更改文本
- 20. 更改文本
- 21. 更改文本
- 22. 更改文本
- 23. 更改文本
- 24. 更改文本
- 25. 更改文本
- 26. 更改文本
- 27. 更改文本
- 28. SWT:自定義MessageBox /更多文本/如何獲取圖標?
- 29. 其他文本框文本更改時更改文本框的文本
- 30. 更改TextView文本
這是正確的答案。經典的消息框不是爲此設計的。您將需要構建自己的對話框和API來支持此操作。好消息是這不會太難。只需使用Windows消息PostThreadMessage()是你的朋友在這裏。 – Foredecker 2009-04-22 19:16:30