或者说是让一个对话框能够初始化,但是不显示出来

解决方案 »

  1.   

    在窗体初始化的时候加上
    this->ShowWindow(SW_HIDE);
      

  2.   

    在窗体初始化的时候加上
    ShowWindow(SW_MINIMIZE);
      

  3.   

    InitDialog那里? 好像不行吧
      

  4.   

    InitDialog里用ShowWindow(SW_HIDE)是可以的,但是你的程序运行还是会在屏幕上闪一下的
    因为此时对话框的框架已经绘制了
    如果想一点不闪,重载一个OnNcPaint()函数,这是在对话框绘制前响应的消息ON_WM_NCPAINT()
    具体如下
    void CClientDlg::OnNcPaint()

       static int i = 1;
        if(i > 0)
    {
    i --;
    ShowWindow(SW_HIDE);
    }
      else
    {
    CDialog::OnNcPaint();  
    }    
    }
      

  5.   

    我新建了一个基于对话框的程序,在OnInitDialog里加了ShowWindow(SW_HIDE)
    根本不隐藏啊,更不用说闪烁
    加了你的代码也不行
      

  6.   

    在APP类的InitInstance函数最后试试
      

  7.   

    在构造函数里写
    if(Create(CDlg::IDD,pParent))
    {
    ShowWindow(SW_HIDE);
    }
      

  8.   

    CGetTimeD
    lg *dlg;然后在InitInstance()中将原来的:    int nResponse = dlg.DoModal();
        if (nResponse == IDOK)
        {
           // TODO: Place code here to handle when the dialog is
           //  dismissed with OK
        }
        else if (nResponse == IDCANCEL)
        {
           // TODO: Place code here to handle when the dialog is
           //  dismissed with Cancel
        }
    以及return FALSE;全部删除掉,改为:     dlg=new CGetTimeDlg;
        m_pMainWnd = dlg;
        return dlg->Create(IDD_GETTIME_DIALOG);
       最后别忘了在ExitInstance()中加上一句:delete dlg;好了,这下把本程序的对话框
    变成了一个无模式对话框。不过既然是无模式对话框,就不能再用OnOK(),OnCancel()来退
    出了,要用DestroyWindow()。  另外将对话框的属性设置为不可见(取消框中more styles 下的visible)
       由于在上面的代码中没有将对话框设为可见,所以运行时就实现了隐藏,而且在Window
    s任务栏上也没有显示。
      

  9.   

    首先在CGetTimeApp类中添加一个成员变量:CGetTimeD
    lg *dlg;然后在InitInstance()中将原来的:    int nResponse = dlg.DoModal();
        if (nResponse == IDOK)
        {
           // TODO: Place code here to handle when the dialog is
           //  dismissed with OK
        }
        else if (nResponse == IDCANCEL)
        {
           // TODO: Place code here to handle when the dialog is
           //  dismissed with Cancel
        }
    以及return FALSE;全部删除掉,改为:     dlg=new CGetTimeDlg;
        m_pMainWnd = dlg;
        return dlg->Create(IDD_GETTIME_DIALOG);
       最后别忘了在ExitInstance()中加上一句:delete dlg;好了,这下把本程序的对话框
    变成了一个无模式对话框。不过既然是无模式对话框,就不能再用OnOK(),OnCancel()来退
    出了,要用DestroyWindow()。  另外将对话框的属性设置为不可见(取消框中more styles 下的visible)
       由于在上面的代码中没有将对话框设为可见,所以运行时就实现了隐藏,而且在Window
    s任务栏上也没有显示。