MFC 如何在一个对话框中修改另一个对话框里按钮的标题?
部分代码如下:gradedlg;//grade是被调用窗口的类名dlg.SetDlgItemTextA(IDC_BUTTON1,"hh");//IDC_BUTTON1是想...
部分代码如下:
grade dlg; //grade是被调用窗口的类名
dlg.SetDlgItemTextA(IDC_BUTTON1,"hh"); //IDC_BUTTON1是想要修改的按钮的ID
UpdateData(false);
dlg.DoModal();
执行时候报图中所示的错误: 展开
grade dlg; //grade是被调用窗口的类名
dlg.SetDlgItemTextA(IDC_BUTTON1,"hh"); //IDC_BUTTON1是想要修改的按钮的ID
UpdateData(false);
dlg.DoModal();
执行时候报图中所示的错误: 展开
3个回答
展开全部
可以用构造函数传递字符串。
改写grade的构造函数,曾加一个字符串指针参数
grade::grade(LPCTSTR btTitle, CWnd *pParent) : m_btTitle(btTitle)//
{
}
要记得修改类里面的声明
grade(LPCTSTR btTitle, CWnd *pParent = NULL) ;
并给grade类添加成员变量
LPCTSTR m_btTitle;(这里我任意取名)
然后给在grade的虚函数OnInitDialog里面判断
if(m_btTitle)
SetDlgItemTextA(IDC_BUTTON1, m_btTitle);
使用时
grade dlg("hh", this);
dlg.DoModal();
如果不修改文本可以
grade dlg(NULL, this);
dlg.DoModal();
如果要在对话框已经弹出后再修改,那就要用自定义消息或者需要获取对话框窗口对象指针了。
改写grade的构造函数,曾加一个字符串指针参数
grade::grade(LPCTSTR btTitle, CWnd *pParent) : m_btTitle(btTitle)//
{
}
要记得修改类里面的声明
grade(LPCTSTR btTitle, CWnd *pParent = NULL) ;
并给grade类添加成员变量
LPCTSTR m_btTitle;(这里我任意取名)
然后给在grade的虚函数OnInitDialog里面判断
if(m_btTitle)
SetDlgItemTextA(IDC_BUTTON1, m_btTitle);
使用时
grade dlg("hh", this);
dlg.DoModal();
如果不修改文本可以
grade dlg(NULL, this);
dlg.DoModal();
如果要在对话框已经弹出后再修改,那就要用自定义消息或者需要获取对话框窗口对象指针了。
追问
追答
你类里面的声明对应着改没?
展开全部
dlg的hWnd为0x00000000,所以你的程序会崩溃,这样创建的这个对象只是一个对象,并不是你所需要找的窗口。如果你是子窗口访问父窗口的控件,可以使用 (GetParent()->GetDlgItem(IDC_BUTTON1))->SetDlgItemText(_T("hh"));
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用无模式对话框,在CreateWindow、ShowWindow之后SetDlgItemText
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询