我調用AfxMessageBox()函數期望彈出窗口居中於調用它的MFC對話框。但是,該框會集中到桌面而不是對話框。它的位置不取決於父對話框的實際位置。什麼會導致這種行爲?是否有可能將AfxMessageBox移動到所需的位置?謝謝!AfxMessageBox顯示在桌面的中間
0
A
回答
0
你可以使用
int WINAPI MessageBox(
_In_opt_ HWND hWnd,
_In_opt_ LPCTSTR lpText,
_In_opt_ LPCTSTR lpCaption,
_In_ UINT uType
);
,並通過應用程序窗口的第一個參數(HWND)的手柄。然後它應該居中。
我不再使用MFC,但我認爲主應用程序窗口必須設置在某處(InitInstance?),也許如果沒有這樣做,AfxMessageBox不會使用應用程序窗口。
0
對話框可以居中在其父窗口上。 AfxMessageBox被創建爲「系統範圍」對話框,這意味着不是應用程序窗口的「子」對話框,這就是爲什麼它不在父窗口的中心,而是在桌面上。
創建AfxMessageBox後,您不能移動它,因爲它是一個模式對話框(以及爲了移動對話框而創建線程的麻煩可能不值得)。
更好的解決方案只是創建自己的對話框功能(如上面alain所建議的)。然後,當你調用它時,你可以傳遞你的調用窗口類(hWnd)的窗口句柄,並且創建的對話框將會在你的應用程序窗口中居中,如你所願。
相關問題
- 1. WPF中的Windows小工具 - 顯示「顯示桌面」時顯示
- 2. 在桌面背景上只顯示桌面背景上的winform
- 3. 爲什麼是AfxMessageBox的顯示中國文字
- 4. 如何始終在桌面上顯示?
- 5. Iphone桌面查看時間顯示在幾秒鐘內
- 6. 每天在特定時間顯示桌面通知
- 7. 如何在桌面視圖的中間顯示選定的索引單元格
- 8. 作爲USB顯示器的Linux桌面
- 9. 桌面視圖中的webview沒有顯示在iOS 7中
- 10. Compass Susy桌面佈局顯示桌面佈局
- 11. 在桌面視圖頂部顯示下方顯示
- 12. 顯示:無 - 顯示在手機上,但不顯示在桌面上
- 13. JQUERYMOBILE頁面顯示在桌面上,但不顯示在移動設備上
- 14. 在桌面視圖中顯示錄製的音頻
- 15. 在android的桌面視圖中顯示數據
- 16. 隱藏桌面的div並將其顯示在手機中
- 17. 在桌面視圖中顯示一年的日期
- 18. 如何在Android中的桌面上顯示圖像
- 19. 在桌面視圖中顯示來自plist的數據數組
- 20. 如何在單元格在桌面視圖中顯示視圖
- 21. 獲取顯示桌面切換狀態
- 22. 桌面/手機上無顯示
- 23. Chrome桌面通知不顯示消息
- 24. 將移動設備顯示到桌面
- 25. 如何讓QWebView顯示桌面通知?
- 26. 圖片來自桌面不顯示(Java)
- 27. WKWebView只顯示桌面站點
- 28. 以編程方式顯示桌面
- 29. 隱藏或顯示桌面視圖
- 30. 如何攔截「顯示桌面」事件?
'CWinApp'讓您有機會通過虛擬函數DoMessageBox調整AfxMessageBox的行爲。因此,如果你確定誰有重點,你可以確定相關的頂層窗口,並在調用'MessageBox'時使用它; – user1793036