我写了一个对话框的程序,想对其中的静态文本的控件初始话,就是一运行就显示,我在c*Dlg 的OnInitDialog()里面写可是没有效果,不过也不提示错误,但在此对listBox的初始话倒是可以实现的。请个位大侠解释一下,不胜感激。

解决方案 »

  1.   

    // TODO: Add extra initialization here
    SetDlgItemText(IDC_STATIC_HINT, "HAHA");
    放在OnInitDialog()函数里面。
      

  2.   

    也可以给静态文本控件一个CString 类型变量 把你需要显示的东西给他就行
      

  3.   

    你看看你的STATIC是不是用的是IDC_STATIC,如果是这样,当然不行了。 
    先把ID改成唯一的,
    然后肯定有效果,OnInitDialog()里
    SetDlgItemText(ID_..,"text");
      

  4.   

    修改静态文本的id为IDC_STATIC_HINT或者其他,反正不能是IDC_STATIC,然后给它添加一个CString变量,然后就可以巴它当Edit控件用了。
      

  5.   


    "也可以给静态文本控件一个CString 类型变量 把你需要显示的东西给他就行"
     我就是用这种方法做的,可是放在OnInitDialog()函数里面没有响应
      

  6.   

    你可能没有  UpdateData(false) 
    如:  m_stattext = "ok" ;
          UpdateData(false) ;
      

  7.   

    BOOL CXXXDlg::OnInitDialog()
    {
        ...
       SetDlgItemText(IDC_STATIC, "Hello,world!");}
      

  8.   

    IDC_STATIC  是你你的静态文本框的属性中的ID
      

  9.   

    问题:
    你一定发现,你的OnInitDialog()中第一句就是CDialog::OnInitDialog()。你的程序一般都在这一句的后面,//TO DO的位置。所以......
    办法:
    在CDialog::OnInitDialog()之前写上你的初始化语句就可以了,如果你在它之后就不行。
    原因:
    因为调用的基类的CDialog::OnInitDialog()使用了函数UpdateData(FALSE),也就是把控件的值付给控件(TRUE是反过来,我一直就不清哪个是哪个,不知这次记对没有:-))
    所以,上面cqiu2000(算死草)写的方法也是可以的,就是有点重复了。