我用Create方式创建一个非模态对话框,
程序内部经常ShowWindow隐藏和显示,
和CTabCtrl一起使用,模仿属性对话框。当我ShowWindow(SW_SHOW)之后,
如何判断对话框已经完全现实好了?简单吧

解决方案 »

  1.   

    试试看这个API:
    BOOL IsWindowVisible(HWND hWnd);
      

  2.   

    俺脚着执行完了show就show了。
      

  3.   

    一般窗口show出来的时候,应该控件什么都准备好了。
      

  4.   

    int i = 0;func1()
    {
    ShowWindow(SW_SHOW);
    i = 1;
    }
    thead1()
    {
    while(!i)
    Sleep(10);
    ......
    }是你想要的么?
    ShowWindow之后控件就全部显示了
      

  5.   

    你ShowWindow(SW_SHOW)了以后,能看到对话框的话,就表明都实现好了
      

  6.   

    各位,我创建了一个默认的MFC对话框工程
    把那个默认的静态控件改了ID后隐藏了,实现了如下代码void CADlg::OnOK() 
    {
    GetDlgItem(IDC_STATIC111)->ShowWindow(SW_SHOW);
    while (1){
               ......
            }
    }在GetDlgItem(IDC_STATIC111)->ShowWindow(SW_SHOW);调用完后,静态控件并没有立刻显示出来
    大概因为WM_PAINT消息的优先级不高吧我想在控件显示出来之后,调用while里的代码,PostMessage发送一个消息不灵,难道让我用Timer?
    (真正的代码可不止这一个控件哦)
      

  7.   

    你先把后面的while段注释掉,看看控件能显示出来么
      

  8.   

    另外void CADlg::OnOK() 执行完对话框不就关闭了么你干嘛写在这里面
      

  9.   

    那就是有问题导致它没显示出来,而不是还没来得及显示。
    -----------------------------------------------------
    没有问题,是没来得及显示你先把后面的while段注释掉,看看控件能显示出来么
    -------------------------------------------------
    能显示,我想知道的就是都显示出来之后那一刻是什么时候,如何截获那一时刻void CADlg::OnOK()
    -------------------
    只有执行了基类的CDialog::OnOK()才会执行关闭动作
    我在这里只是当个普通按钮用用
      

  10.   


    GetDlgItem(IDC_STATIC111)->ShowWindow(SW_SHOW);
    没有显示,那要多久?
      

  11.   

    如果是基于webbrowse控件的窗口显示可能确实不能在主窗口显示后立即显示出来。不过可以通过其onload消息来判断。对于基于其它控制的窗口,如果发现显示延迟问题,应该了解其工作原理,再分析其界面不能立即显示的原因,然后寻找相应的对策。
      

  12.   

    void CADlg::OnOK()
    一执行就退出了,除非你自己改了自动生成的代码,才不会退出。,,你看看你改了没有,没改得话还是不要在void CADlg::OnOK()里运行。
      

  13.   

    把你的void CADlg::OnOK()里德代码完整的贴出来?你的while里在做什么?
      

  14.   

    试试看这个API:
    BOOL IsWindowVisible(HWND hWnd);
      

  15.   

    童鞋们呐,问题没那么复杂
    跟我的while(...)...啥的没关系ShowWindow(SW_SHOW);
    这句话执行完后,对话框不会立即在屏幕上画出来我就是想问,什么时候对话框及其子控件能在屏幕上画出来
      

  16.   

    不难,你为对话框设置一个变量。
    m_bInit = false;
    当你的检索成功的时候,再把它置真。
    然后你就能根据m_bInit的值判断你想要的东西。。