我想在MFC中創建一個對話框後創建一個線程。有沒有Windows提供的功能,並在OnInitDialog
之後自動調用,以便我可以在其中創建我的線程?在MFC中調用OnInitDialog函數後是否有任何函數?
回答
您可以簡單地在OnInitDialog
函數中創建線程。沒有理由通過去搜索一個不同的函數來過度複雜,或者將初始化代碼分成兩部分。 (還有不是任何這樣的功能,因爲有要發送沒有相應的Windows消息。)
如果你希望得到您的對話框,在屏幕上之前創建的線程,你可以只顯示它手動使用ShowWindow
function。例如:
ShowWindow(SW_SHOW);
RedrawWindow();
也看到這個帖子的雷蒙德陳:Waiting until the dialog box is displayed before doing something
OnInitDialog()
是初始化時調用的主要函數(與WM_CREATE
相關)。
爲什麼你不能在那裏創建你的線程?
我在onintidialog函數內部創建了兩個線程,但是當我運行該對話框時,對話框非常緩慢。因此,我在內部創建線程,即5ms時間後對話形成,然後線程將開始工作正常。所以我認爲,除了在定時器中創建線程以外,如果在創建dialo之後還有其他任何函數被調用,那麼我可以將我的代碼放在那裏。是否存在任何函數? – Suri 2011-02-23 08:23:48
對'WM_INITDIALOG'的反應是不是'OnInitDialog'? – 2011-02-23 08:26:40
我已經改變了線程的優先級,以低於正常當線程執行的第一次我的線程設置爲正常修道院。這工作正常。感謝您的答覆。
- 1. 如何最小化OnInitDialog函數中的MFC應用程序?
- 2. MFC編輯框中取出光標,在OnInitDialog函數
- 3. 如何在MFC中調用Javascript函數?
- 4. 如何在mfc中調用函數...?
- 5. MFC SetRegistryKey ...是否有GetRegistryKey函數?
- 6. 是否有任何GMP對數函數?
- 7. 是否有可能在構造函數中調用函數? PHP
- 8. ondraw函數不在mfc中調用?
- 9. 檢查函數調用是否存在任何參數
- 10. 在屏幕上顯示活動負載後是否有任何函數調用?
- 11. 在cometchat中加載「好友列表」後是否有任何回調函數?
- 12. 是否有任何理由Object.freeze函數?
- 13. 他們是否有任何方式來調用內部函數
- 14. 函數中是否可以有函數?
- 15. PowerShell是後函數調用
- 16. 是否可以在Javascript函數中調用ASP.NET函數?
- 17. 是否可以在任何函數內部調用OnNavigatedFrom?
- 18. matlab在多次調用mex函數後沒有任何反應
- 19. 如何在函數中調用函數?
- 20. 如何從CDialog :: OnInitDialog或在此函數結束後立即結束對話框mfc應用程序?
- 21. 在MFC/C++中是否有任何數據庫事務機制?
- 22. MFC visibile函數
- 23. greenplum中是否有任何函數可用於生成UUID
- 24. 是否有任何函數對象在STL中創建對象?
- 25. 在Cython中是否有任何類型的函數?
- 26. 是否有任何函數在PHP中將long轉換爲int?
- 27. 在此函數中使用引用參數是否有任何優勢?
- 28. MFC TVN_ITEMEXPANDING不調用處理函數
- 29. 何時知道某個函數是否是回調函數?
- 30. 在函數後調用JQuery.bind()
我發現我還需要調用'CenterWindow()',因爲調用ShowWindow導致左上角的對話框。 – Klox 2016-06-25 17:32:43
@klox嗯,這不應該是必要的。對話框將自動以其所有者窗口爲中心。這發生在內部MFC函數'_AfxPostInitDialog'中,它在'OnInitDialog'後面運行。如果'OnInitDialog'函數沒有改變對話框的座標,'_AfxPostInitDialog'實際上會調用'CenterWindow'。但明確地調用它也不會傷害,所以無論工作如何。考慮到多顯示器系統,請確保您將其置於合理的位置。始終以主顯示器爲中心是錯誤的決定。 :-) – 2016-06-26 07:02:36
我沒有所有者窗口(對話框是唯一的窗口),但是您的描述有助於解釋我看到的行爲變化。 – Klox 2016-06-27 21:18:09