MFC对话框程序,在一个工程下,不同的对话框类在CString变量上有不同的值。有些在定义CString变量后MessageBox,输入结果为空,但是有些类输出又为1(临时变量,都没赋值),有点不明白,请高手指教。

解决方案 »

  1.   


    CString需要初始化?即便这样也说不通,同样的定义也没初始化,在不同的对话框类里面又不一样,而且我刚试过,即使先初始化CString X="";然后再MessageBox(x),输出还是1
      

  2.   

    1。你看看向导是怎么做的:
    // Dialog Data
    //{{AFX_DATA(CAboutDlg)
    enum { IDD = IDD_ABOUTBOX };
    CButton m_Bt2;
    CMyButton m_Bt1;
    CScrollBar m_SbVert;
    CIPAddressCtrl m_IPadr;
    CString m_Stc1;
    //}}AFX_DATA
    ///////////////////////////////////////////////
    CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
    {
    //{{AFX_DATA_INIT(CAboutDlg)
    m_Stc1 = _T(""); //}}AFX_DATA_INIT
    }
    2.试试:
    AfxMessageBox()
      

  3.   


    成员变量没试过,我用的临时变量,AfxMessageBox也一样,还是各输各的值。
      

  4.   


    我再详细说一次,vs2008,MFC对话框程序,工程中有几个对话框类,现在发现在不同的对话框类中,申明一个CString临时变量,比如 CString temp;MessageBox(temp);然后用MessageBox输入值,一部份对话框类中输出为空,一部份却输出1,都是在OnInitDialog()中实验输出的,想知道是怎么回事?如果没表达清楚,请指教,谢谢。
      

  5.   


    贴代码意义不大 就这两行
    BOOL ProcessDlg::OnInitDialog() 
    {
       CDialog::OnInitDialog();
       CString temp;
       MessageBox(temp);//这里输出为1
    .......
    ....BOOL ServerDlg::OnInitDialog() 
    {
    CDialog::OnInitDialog();
            CString temp;
            MessageBox(temp);//这里输出却为空了
      

  6.   


    贴代码意义不大   就这两行
    BOOL   ProcessDlg::OnInitDialog()  
    {
            CDialog::OnInitDialog();
            CString   temp;
            MessageBox(temp);//……
    [/Quote]
    灵异事件~Rebuild all一下再看看
      

  7.   


    贴代码意义不大   就这两行
    BOOL   ProcessDlg::OnInitDialog()  
    {
            CDialog::OnInitDialog();
            CString   temp;
            MessageBox(temp);//……
    [/Quote]
    就是因为你的 CString   temp没有做初始化,所以输出的内容是随机的
      

  8.   

    灵异事件~Rebuild ……
    [/Quote]Rebuild all N次了,如果原因是有人动过vs2008设置,会是哪里?因为女儿经常来玩.....
      

  9.   

    就是因为你的 CStrin……
    [/Quote]是固定的,并没有随机.....
      

  10.   

    build成功了吗?你确定运行的是你编译的最新的。我怀疑你一致在运行 旧的、错的
      

  11.   

    问题解决,原因是女儿在创建第3个对话框的OnInitDialog()里面复制了一句(LPSTR)(LPCTSTR)...强转的代码,之前曾经复制到剪贴板里,然后又取消了这段代码,不知道女儿什么时候复制到OnInitDiglog()里面,导致后面的对话框CString空值都为1,唉!!