我在一个工作线程中声明一个用于显示进度条的Dialog对象,然后调用Create,然后ShowWindow,奇怪的是对话框能show出来,但是对话框上的一些文本文字都显示不出来,进度条却能正常显示进度。
为什么?

解决方案 »

  1.   

    文字是动态写上去的还是写在 static控件上的
      

  2.   

    而且如果一切换窗口,该对话框及其主框架Window的客户区都变成白板了,而程序又没有死掉。怎么回事呢?
      

  3.   

    Show完Window以后,试下这个看行不行MSG msg;
    while( ::PeekMessage( &msg, NULL, 0, 0, PM_REMOVE ) )
    {
    ::TranslateMessage( &msg );
    ::DispatchMessage( &msg );
    }
      

  4.   

    调用Create,然后ShowWindow, 这是非模式对话框在线程需要自己处理消息 GetMessage, DispatchMessage, ...
      

  5.   

    你的线程没有消息循环吧?可以用AfxBeginThread创建线程,或者参考LS的代码。
      

  6.   

    MSG msg; 
    while( ::PeekMessage( &msg, NULL, 0, 0, PM_REMOVE ) ) 

    ::TranslateMessage( &msg ); 
    ::DispatchMessage( &msg ); 
    }这个是加在我的线程代码里吗?我是在一个线程里show 这个Dialog的。
      

  7.   

    然后调用Create 了什么?
    进度条?还是对话框?用模态的对话框不行吗?
      

  8.   


    这个思路不错!可以Try一try