线程中创建对话框

在做远程控制项目,当收到远程命令时线程需要创建对话框,于是在网上查看这方面的资料,大多数都只言片语。。

在这里写下我对这方面的体会:
1,线程都有message queue (不管是work thread or ui thread)。 work thread 与ui thread 的区别是:work thread没有消息循环,而ui thread   有消息循环。
2,不管是work thread还是ui thread都可以显示对话框,当然要使对话框有所响应,你就得实现线程的消息循环以处理用户消息。
3,在一些MFC程序里面会对CRuntimeClass的变量进行检测,所以会有Assertion。所以MFC中,在work thread里显示CDialog会有很多错误。
我们知道ASSERT只在DEBUG版本中有效,把程序设成Release版本,就不会有错误了(我指的是能显示对话框了.但程序很有可能是有错误的,因为ASSERT的作用就是检测必要的参数,Release下只是不检测而已)

 

奇怪:我在工作线程中显示一CDIALOG,线程里也没有消循环,为什么DIALOG 在RELEASE下正常使用,OK和CANCEL按钮都正常工作,为什么呢?你可以告诉我吗。

你可能感兴趣的:(thread,UI,工作,mfc,dialog)