我做了一个程序 在初始化时,我加载了一个非模态对话框,对话框上有一个静态文本控件“程序初始化   .   .   .” 
在程序初始化前,加入以下代码: 
WaitDlg* dlg=new WaitDlg();
dlg->Create(IDD_WAIT,this);
dlg->ShowWindow(SW_SHOW);
但程序初始化时,只显示了空白的对话框,并没有显示静态文本控件“程序初始化   .   .   .”,不知是为什么? 

解决方案 »

  1.   

    静态文本控件的属性怎么设置的
    是不是visible为false了
      

  2.   


    WaitDlg* dlg=new WaitDlg();
    dlg->Create(IDD_WAIT,this);
    dlg->ShowWindow(SW_SHOW); AfxMessageBox("启动错误");
    我在后面加上AfxMessageBox这个消息框,上面的非模态对话框就会出现文字了
      

  3.   


    WaitDlg::WaitDlg(CWnd* pParent /*=NULL*/)
    : CDialog(WaitDlg::IDD, pParent)
    {
    //{{AFX_DATA_INIT(WaitDlg)
    m_msg = _T("程序启动中,请稍后.......");
    //}}AFX_DATA_INIT
    }
    void WaitDlg::DoDataExchange(CDataExchange* pDX)
    {
    CDialog::DoDataExchange(pDX);
    //{{AFX_DATA_MAP(WaitDlg)
    DDX_Text(pDX, IDC_MSG, m_msg);
    //}}AFX_DATA_MAP
    }
    BEGIN_MESSAGE_MAP(WaitDlg, CDialog)
    //{{AFX_MSG_MAP(WaitDlg)
    //}}AFX_MSG_MAP
    END_MESSAGE_MAP()/////////////////////////////////////////////////////////////////////////////
    // WaitDlg message handlersBOOL WaitDlg::OnInitDialog() 
    {
    CDialog::OnInitDialog();

    // TODO: Add extra initialization here
    m_msg="程序启动中,请稍后.......";
    UpdateData(FALSE);

    return TRUE;  // return TRUE unless you set the focus to a control
                  // EXCEPTION: OCX Property Pages should return FALSE
    }
    这个是非模态的对话框的代码
      

  4.   

    问题找到了,加上 dlg->UpdateWindow();就可以了
      

  5.   

    你的DoDataExchange里已经有了
    DDX_Text(pDX, IDC_MSG, m_msg);
    那么你的OnInitDialog中就没有必要加上UpdateData(FALSE);这句了