我想在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