在一个自己创建的线程中,创建了有一个无模式对话框,我想自己测试线程的一些实时信息在这个对话框中实时显示怎么做呢?CMyThread线程类继承自CWinThread类,在Run()中::
int CmyThread::Run()
{
if(m_pDlg->GetSafeHwnd() == 0)  //m_pDlg is a modelless dialog pointer
     m_pDlg->Create();
while(1)
{
               
               

}
         m_pDlg->DestroyWindwo();
}为什么程序一启动此线程,程序就没有反映了把
if(m_pDlg->GetSafeHwnd() == 0)
     m_pDlg->Create();
去掉就正常了,为什么??

解决方案 »

  1.   

    没有先Create(),为什么调用GetSafeHwnd()次序有问题
      

  2.   

    Modeless Dialog应该算是生成并运行了一个单独的线程来处理Dialog中的一些消息传递。所以要想与某线程进行通信,如果在程序结构上就把两者并列是不是就更合理些呢?
      

  3.   

    如果只去掉if(m_pDlg->GetSafeHwnd() == 0)这一句呢?
      

  4.   

    zssgtt(活到老学到老)说得对啊, 
    次序弄错了, 没有create, 当然取不到hdc了