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

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

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

}

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

冉冉说
浏览 198回答 3
3回答

精慕HU

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

慕容3067478

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

桃花长相依

show定义成CMy001Dlg类的成员函数
打开App,查看更多内容
随时随地看视频慕课网APP