为了账号安全,请及时绑定邮箱和手机立即绑定

我这样写出来目的就是想知道不定义为成员函数的方法?求指教

我这样写出来目的就是想知道不定义为成员函数的方法?求指教

C++
冉冉说 2022-11-18 18:14:44

void show()
{
// setlab("haha");
//这里如何才能正确调用setlab呢?
//又如何使 GetDlgItem(IDC_STATIC1)->SetWindowText(str); 这句在这里能正确执行?
}

void CMy001Dlg::OnButton1() 
{
show();

}

void CMy001Dlg::setlab(CString str)
{
GetDlgItem(IDC_STATIC1)->SetWindowText(str);
}

查看完整描述

3 回答

?
精慕HU

TA贡献1592条经验 获得超6个赞

第一 如果show不是CMy001Dlg 的成员函数 
则: 必须要有一个 类的对象给对象分配内存
然后,在调用的时候 用 对象名->setlab(...) 调用其成员函数【此时一定要保证其成员函数是公开的】
第二,可以把show作为CMy001Dlg的成员函数,在其前面用CMy001Dlg::show(...),在类 的里面做函数体的声明

查看完整回答
反对 回复 2022-11-24
?
慕容3067478

TA贡献1501条经验 获得超3个赞

你要想不定义为成员函数,而且做到先调用setlab("haha")然后调用GetDlgItem(IDC_STATIC1)->SetWindowText(str)就必须知道dlg的句柄,可以再CMy001Dlg中添加一个parentWnd指向父窗口,然后通过AfxGetMainWnd获取父窗口的句柄,通过在父窗口中设定的childDlg然后获取这个句柄然后通过句柄操作!
不过你这么做就是吃饱了撑的慌,真的!

查看完整回答
反对 回复 2022-11-24
?
桃花长相依

TA贡献1561条经验 获得超8个赞

show定义成CMy001Dlg类的成员函数

查看完整回答
反对 回复 2022-11-24

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信