
MFC 中改变编辑框的文字
voidCMyDig::OnButtonClick()//My是我的工程名字{SetDlgItemText(IDC_Status,__T("Connectionsucce...
void CMyDig::OnButtonClick()//My是我的工程名字
{
SetDlgItemText(IDC_Status,__T("Connection successful"));
//这样写可以改变文本框的字
}
后来我建立了个新类,CustomSocket:public CSocket
void CustomSocket::OnCustom()
{
SetDlgItemText(IDC_Status,__T("sadfasdfsf"));
// 编译失败,说非静态函数的非法调用。
}
问题:如何在新类中修改EDIT控件里的文字。 展开
{
SetDlgItemText(IDC_Status,__T("Connection successful"));
//这样写可以改变文本框的字
}
后来我建立了个新类,CustomSocket:public CSocket
void CustomSocket::OnCustom()
{
SetDlgItemText(IDC_Status,__T("sadfasdfsf"));
// 编译失败,说非静态函数的非法调用。
}
问题:如何在新类中修改EDIT控件里的文字。 展开
2个回答
展开全部
CWnd::SetDlgItemText
void SetDlgItemText( int nID, LPCTSTR lpszString );
你看啊,SetDlgItemText是CWnd类的一个方法,它以及它的子类可以这样直接使用SetDlgItemText(IDC_Status,__T("Connection successful"));
但你写的类是CSocket的子类,这个类里没有SetDlgItemText方法,你再这样直接调用就不行了
你得这样:
Status.SetDlgItemText(__T("sadfasdfsf"));
Status是IDC_Status所关联的成员变量
void SetDlgItemText( int nID, LPCTSTR lpszString );
你看啊,SetDlgItemText是CWnd类的一个方法,它以及它的子类可以这样直接使用SetDlgItemText(IDC_Status,__T("Connection successful"));
但你写的类是CSocket的子类,这个类里没有SetDlgItemText方法,你再这样直接调用就不行了
你得这样:
Status.SetDlgItemText(__T("sadfasdfsf"));
Status是IDC_Status所关联的成员变量
更多追问追答
追问
Status是IDC_Status所关联的成员变量
Status.SetDlgItemText(__T("sadfasdfsf"));
将这句语句放到新类中,编译器提示Status是未声明的标示符,我的确用向导建立了这个控件关联变量,但却只能在CMyDlg类中使用,在其他类中不能使用这个关联变量。
追答
哦,我想你的对话框应该有个类吧
你在CSocket这样
CMyDlg dlg;
dlg.Status.SetDlgItemText(__T("sadfasdfsf"));
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询