怎样让Dialog based程序启动时就隐藏
ShowWindow(SW_HIDE );

AfxGetApp()->m_nCmdShow=SW_HIDE;
好象都不行

解决方案 »

  1.   

    m_bShow=TRUE;CDlg::OnPaint()
    {
      if(m_bShow)
       { 
         ShowWindow(SW_HIDE);
         m_bShow=FALSE;
        }
       .........
    }
      

  2.   

    m_bShow=TRUE;CDlg::OnPaint()
    {
      if(m_bShow)
       { 
         ShowWindow(SW_HIDE);
         m_bShow=FALSE;
        }
       .........
    }
    还是不行
      

  3.   

    /////////////////////////////////////////////////////////////////////////////////
    //hide dialog at startup
    /////////////////////////////////////////////////////////////////////////////////
    void CHidedlgDlg::OnWindowPosChanging(WINDOWPOS FAR* lpwndpos) 
    {
    if (lpwndpos->flags & SWP_SHOWWINDOW) {
    lpwndpos->flags &= ~SWP_SHOWWINDOW;
    PostMessage(WM_WINDOWPOSCHANGING, 0, (LPARAM)lpwndpos);
    ShowWindow(SW_HIDE);
    }
    else
    CDialog::OnWindowPosChanging(lpwndpos);
    }
    //通过重载DoModel、RunModelLoop可以解决问题
      

  4.   

    窗口设为不可见风格.
    需要显示的时候在设置为可见的.
    或者在Oninitdlg中用ShowWindow(SW_HIDE);
      

  5.   

    设个定时器
    OnInitDialog() 
    {
    CDialog::OnInitDialog();
             m_nTimer=SetTimer(1,500,0);
    return TRUE;
    }
    OnTimer(UINT nIDEvent) 
    {
    ShowWindow(SW_HIDE); KillTimer(m_nTimer);
    CDialog::OnTimer(nIDEvent);
    }
    这样一定行,我就这么做的
      

  6.   

    BOOL CTestApp::InitInstance()
    {
    // Standard initialization
    // Standard initialization    CTestDlg* pdlg = new CTestDlg;
        m_pMainWnd = pdlg;
        pdlg->Create(pdlg->IDD,NULL);
        pdlg->ShowWindow(SW_SHOW);
        return TRUE;
    }CTestDlg::PostNcDestroy()
    {
    CDialog::PostNcDestroy();
    delete this;
    }
      

  7.   

    楼上代码什么意思?可否解释一下CTestDlg::PostNcDestroy()?
      

  8.   

    在窗口销毁时删除这个对象. 因为这个对象是NEW出来的.