怎样改变自定对话框中的Static Text文本的内容?

yuds5462 2006-02-17 03:02:56
有一个自定义的对话框,里面有一个StaTic Text控件,运行过程中,怎样在调用这个对话框时,改变这个控件中的文本?
假设这个对话框类的实例是dlg,那个控件的ID是:ID_STATIC1,用下面的方法为什么运行时会出错?

dlg.GetDlgItem(IDC_STATIC1)->SetWindowTextW((LPCTSTR)_T("打印文件对话框"));

请指教!
...全文
1086 39 打赏 收藏 转发到动态 举报
写回复
用AI写文章
39 条回复
切换为时间正序
请发表友善的回复…
发表回复
ablewindy 2006-05-10
  • 打赏
  • 举报
回复
好像很简单。
变得很复杂!
yuds5462 2006-05-10
  • 打赏
  • 举报
回复
哈哈哈,看来有解了!
flyskytoday 2006-05-09
  • 打赏
  • 举报
回复
看static text属性
里面好象有个通道属性notify
打下勾,就可以了
YufengShi 2006-05-09
  • 打赏
  • 举报
回复
CXXXDlg dlg;
dlg.m_strText = _T("test");
dlg.DoModal();

CXXXDlg::CXXXDlg()
{
m_strText = _T("default");
...
}
CXXXDlg::OnInitDialog()
{
SetDlgItemText(IDC_STATIC1, m_strText);
...
}
LeiShi 2006-05-09
  • 打赏
  • 举报
回复
越说越复杂了,建议干掉这个程序,重写一遍就 OKle
一条晚起的虫 2006-05-09
  • 打赏
  • 举报
回复
给IDC_STATIC1关联一个Public CString变量m_static1
CDialoatTest dlg;
dlg.m_static1 = ""打印文件对话框";
做鸡真好吃 2006-05-09
  • 打赏
  • 举报
回复
Mark~
妍妍 2006-02-24
  • 打赏
  • 举报
回复
CWnd* GetDlgItem(
int nID
) const;返回值是CWnd,转化成CStatic看看
yuds5462 2006-02-24
  • 打赏
  • 举报
回复
看来此题无解!
Dynamic 2006-02-19
  • 打赏
  • 举报
回复
SetWindowTextW改成SetWindowText就可以了,
SetWindowTextW不是CWnd的成员
duanhuicen 2006-02-19
  • 打赏
  • 举报
回复
在对话框的OnInitDialog();里修改显示的内容
lanhanNO_1 2006-02-19
  • 打赏
  • 举报
回复
dlg.DoModal(); static创建完之后在那都能搞他
CW_Wei 2006-02-19
  • 打赏
  • 举报
回复
初始化当然就在CDialoatTest 类的构造函数里初始化呗
社会栋梁 2006-02-19
  • 打赏
  • 举报
回复
Domodal 之前static控件还没有创建,你当然不能SetWindowText了
你把SetWindowText放在CDialog::OnInitDialog里
ysc918 2006-02-19
  • 打赏
  • 举报
回复
对话框类会自己去做初始化工作。
不知你是要达到什么样的目的,是不是就是想在View类中改其内容,而不想在对话框类中改?
如果这样的话,你可以使用无模式对话框 ,而不要用模式对话框。
yuds5462 2006-02-19
  • 打赏
  • 举报
回复
to yujia120(永不停息):能一个完整的类的例子吗?就初始化这一部分的!谢谢

yuds5462 2006-02-19
  • 打赏
  • 举报
回复
to duanhuicen(sanlang):

"那你为什么不用初始化的方法?窗体没有创建呢,SetDlgItemText 会出错啊。"

能向你请教一下,怎么做一个可初始化的类吗?谢谢!
yuds5462 2006-02-19
  • 打赏
  • 举报
回复

nodefault(永不言败):你说的是这个方法吗?

你不会换成CEdit吗?属性改为DSIABLE,去掉BORDER,就可以
dlg.GetDlgItem(IDC_STATIC1)->SetWindowTextW((LPCTSTR)_T("打印文件对话框"));

你说的"属性改为DSIABLE",不知你说的是哪个属性啊?

我试过修改一个button的提示,也出同样的错.问题不是在什么样的控件,还是在没有初始化上.
如果你认为你的方法可以,你可以在十分种之内建一个小的测试程序试一下啊?
还是感谢您的参与!
ysc918 2006-02-18
  • 打赏
  • 举报
回复
建议在创建了对话框之后再改变对话框中static的内容,
可以在对话框类的InitDialog()中改变其内容。
duanhuicen 2006-02-18
  • 打赏
  • 举报
回复
那你为什么不用初始化的方法?窗体没有创建呢,SetDlgItemText 会出错啊。
加载更多回复(19)

16,466

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧