创建了一个工程 在对话框类Dlg中 定义了一个文本框 文本框的指针是_Editor003。我想在命令类Cmd中使用_Editor003.请问应该怎样做 我直接使用_Editor003提示我未定义 我感觉可能是_Editor003不是Cmd的成员。我在Cmd中建立了一个对话框类的指针MyCreateCylinderDlg * _pCylinderDlg;
2 回答

慕勒3428872
TA贡献1848条经验 获得超6个赞
至少两个比较简单合理的方法:
_Editor003作为Dlg的成员变量
通过获取Dlg指针去引用Dlg->_Editor003
获取Dlg指针,使用Dlg->GetDlgItem(IDC_TEXT)获取,其中IDC_TEXT是文本框的资源ID
作为更合理的方法,给Dlg增加成员函数,返回_Editor003的指针

慕婉清6462132
TA贡献1804条经验 获得超2个赞
传递类的成员函数的指针必须同时传递能够调用该成员函数的对象,因为除了类的静态成员函数,只有类的对象才能调用其成员函数。
*/
void fun2(double a,double b,T a1,void(T::*fun)(double,double))
{
(a1.*fun)(a,b);
}
};
class C{
public:
void fun3(double a,double b)
{
cout<<a*b<<endl;
}
};
void main()
{
A a;
B b;
C c;
/*
&A::fun1传递一个类的成员函数指针的方式。
*/
b.fun2(10,19,a,&A::fun1);
b.fun2(10,19,c,&C::fun3 );
}
添加回答
举报
0/150
提交
取消