在一个按钮响应函数里,创建一个Dialog,创建完之后,执行其他操作,但为什么要等创建窗口代码后面的代码执行完毕之后
窗口才显示出来呢,好久没弄MFC了,各位看看是怎么回事? CRect rect(150,100,650,400);
BOOL bRet = m_ProcessDlg->Create(IDD_DLG_PRO_STATE,this);
bRet = m_ProcessDlg->ShowWindow(SW_SHOW);
m_ProcessDlg->MoveWindow(&rect,FALSE); Fun();  //要等这个函数里面的内容执行完毕之后,窗口才完全显示出来?

解决方案 »

  1.   

    你创建的是非模态窗口,理论上到ShowWindow的时候,窗口就可以被看到了。
      

  2.   

    你在Fun(); 函数前加UpdateData(false);就可以了!
      

  3.   

    因为按钮响应函数用的是消息处理机制;如果该消息未处理完毕,会影响其他窗口的消息处理(如窗口的刷新)。如果想立即显示对话框,需要把Fun()放到一个新线程中去处理。
      

  4.   

    CRect rect(150,100,650,400);
    BOOL bRet = m_ProcessDlg->Create(IDD_DLG_PRO_STATE,this);
    bRet = m_ProcessDlg->ShowWindow(SW_SHOW);
    m_ProcessDlg->MoveWindow(&rect,FALSE);
    这几段代码没有一句能够显示代码...