我写了一个 单文档 程序。 关联了一个 弹出式对话框。 上面 放了一个 编辑框3 个组合框。  我给组合框赋了几个初值如下: 
((CComboBox *)GetDlgItem( IDC_COMBO1 ))->AddString("认证曲线");
((CComboBox *)GetDlgItem( IDC_COMBO1 ))->AddString("计费和认证曲线" );
((CComboBox *)GetDlgItem( IDC_COMBO1 ))->SetCurSel( 0 );
测试正确
   然后我再给 编辑框赋初值
        SetDlgItemText( IDC_EDIT1,"dsfaaaaaaaa" );
        SetDlgItemText( IDC_EDIT3,"dsfaaaaaaaa" );
       结果 没有 赋上。 我确定 IDC_EDIT1和 IDC_EDIT3。 是正确的。       不知道是什么原因。 请求大家帮助。之前给对话框赋初值 都比较顺利
(顺便说一下。 这个对话框类 我之前写了一个类名。后来 忘了 在类前 加“C” 了。我就把这个类的.h和.cpp删了。又重新生成一个类。又改了一下.htm文件,结果 对话框颜色显示不正确。不知道 为什么)。

解决方案 »

  1.   

    试下这样。。GetDlgItem(IDC_EDIT1)->SetWindowText("dsfaaaaaaaa");
    GetDlgItem(IDC_EDIT3)->SetWindowText("dsfaaaaaaaa");
      

  2.   

    加UpdateData(TRUE) 程序 报错。  另外我刚才 在 这个程序中 加了一个 对话框。又赋 初值 。 是可以的。   我实在是不知道是什么原因 。
      

  3.   

    HBXStone99 。 你的 方法我试过了。还是一样的。
      

  4.   

    加UpdateData(TRUE) 程序 报错。  另外我刚才 在 这个程序中 加了一个 对话框。又赋 初值 。 是可以的。  我实在是不知道是什么原因 。
    ================
    代码肯定没有问题,可能是其它问题,至于UpdateData和你这个没关系,你没有关联变量,不用UpdateData的。
      

  5.   

        SetDlgItemText( IDC_EDIT1,"dsfaaaaaaaa" ); 
            SetDlgItemText( IDC_EDIT3,"dsfaaaaaaaa" ); 
    应该是他前面的代码出错影响到了他。你把它写在初始化dialog的函数里面测试一下,应该是好的吧
      

  6.   

    BOOL CSetParam::OnInitDialog()
    {
    //m_combo.AddString("sdf");
    ((CComboBox *)GetDlgItem( IDC_COMBO1 ))->AddString("认证曲线");
    ((CComboBox *)GetDlgItem( IDC_COMBO1 ))->AddString("计费和认证曲线" );
    ((CComboBox *)GetDlgItem( IDC_COMBO1 ))->SetCurSel( 0 );
    GetDlgItem(IDC_EDIT1)->SetWindowText("aaaa");
    //SetDlgItemText( IDC_EDIT1,"dsfaaaaaaaa" );
    //SetDlgItemText( IDC_EDIT3,"dsfaaaaaaaa" );
    //SetDlgItemInt(IDC_EDIT2,5,true); CDHtmlDialog::OnInitDialog();
    return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
    }
    这是我在 OnInitDialog 里写的代码
      

  7.   

    BOOL CSetParam::OnInitDialog() 

    GetDlgItem(IDC_EDIT1)->SetWindowText("aaaa"); CDHtmlDialog::OnInitDialog(); 
    return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE 

    这样可以吗
      

  8.   

    问题解决。  大家看我上面的代码  其中有一句。。  "CDHtmlDialog::OnInitDialog();"" . 就是它的原因。 注释掉就可以了。我不知道 这句话是什么意思。 应该是读 .htm文件吧。  我不知道 为什么生成 类时会自动加上这句话。 我之前没碰到过这个问题。   谢谢大家。。     
      

  9.   

    不对奇怪,BOOL CSetParam::OnInitDialog() 这个里面是CSetParam::消息体里面是CDHtmlDialog::OnInitDialog(); 代码有问题的哦。类的名字有问题
      

  10.   

     我自动生成类。 就加上了 CDHtmlDialog::OnInitDialog(); 。   不知道为什么。 结果搞的对话框 颜色不对, na_he 你知道是什么原因吗。》
      

  11.   

    dialog的OnInitDialog() 
    里面都会有的,是MFC框架生成的,不可以随便删除的。CSetParam这个是个dialog吗
      

  12.   

    dialog的OnInitDialog() 
    里面都会有的,是MFC框架生成的,不可以随便删除的。CSetParam这个是个dialog吗CSetParam是一个 dialog..
    BOOL CSetParam::OnInitDialog()
    { CDialog::OnInitDialog ();
    //m_combo.AddString("sdf");
    ((CComboBox *)GetDlgItem( IDC_COMBO1 ))->AddString("认证曲线");
    ((CComboBox *)GetDlgItem( IDC_COMBO1 ))->AddString("计费和认证曲线" );
    ((CComboBox *)GetDlgItem( IDC_COMBO1 ))->SetCurSel( 0 );
    SetDlgItemText( IDC_EDIT3,"dsfaaaaaaaa" ); //CDHtmlDialog::OnInitDialog();//为什么 给我加上了这样一句话?
    return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
    }
    我这样改了一下。问题就解决了。
    CDHtmlDialog::OnInitDialog();//为什么 生成类 自动加 上了这句话呢?
      

  13.   

    CSetParam::OnInitDialog();理论上MFC会增加这句的,是不是你中间自己修改了类的名字,那要注意所有的地方都要修改了。
      

  14.   

    我估计是CSetParam 派生自CDHtmlDialog吧,否则编译就通不过。另外CDialog::OnInitDialog就是执行默认的操作,其中会做DDX操作,你之前设置的值会在DDX中被刷新,原因就这么简单。你把那句放第一句自然就好了,以后注意了,CDialog::OnInitDialog必须放在这个虚函数的第一行!否则结果不确定。呵呵。========================================
    提界面问题,UIPower有问必答!
    界面论坛:http://www.uipower.com/bbs
      

  15.   

    class CSetParam : public CDHtmlDialogfafa_cai 说的对。 我不知道 我 自动生成的 dialog为什么  就派生于 CDHtmlDialog了。 以前没有过这个问题。
      

  16.   

    有关这个问题,你不必多在意,很多种情况都有可能。
    以后不要随便修改文件名称,如果想要整理那个类的话,最还新建一个类做。这样可以节约时间。========================================
    提界面问题,UIPower有问必答!
    界面论坛:http://www.uipower.com/bbs
    我们有专员负责网友问题的解答,真诚为你服务!