MFC中,如何在根据控件句柄获取控件对象?

在对话框类中直接用GetDlgItem(IDC_XX)就行了但我现在是在我自己定义的类中,不是在对话框类中我现在用::GetDlgItem(hwnd,IDC_XX)获取了... 在对话框类中直接用GetDlgItem(IDC_XX)就行了
但我现在是在我自己定义的类中,不是在对话框类中

我现在用::GetDlgItem(hwnd,IDC_XX)获取了该控件的句柄(hwnd是控件所在对话框的句柄),请问我现在如何能通过这个句柄获取控件的指针,这样才能在我自己的类中使用控件

我的控件是combox, 如果有其他思路的也行 谢谢了
2楼:试过了 不行
3楼:CComBox * com;
com=CComBox::FromHandle(GetDlgItem(hwnd,IDC_XX));
这句出错,error C2440:"=";cannot convert from 'CWnd *' to 'CComboBox *'

HWND hwnd = GetDlgItem(hwnd,IDC_XX)->GetSafeHwnd();//
这句肯定不行,::GetDlgItem(hwnd,IDC_XX)返回的是控件的句柄,而不是控件对象
展开
 我来答
xdk1002
2011-01-21 · TA获得超过156个赞
知道答主
回答量:53
采纳率:0%
帮助的人:0
展开全部
首先在你自己的类中定义一个要使用这个控件的变量,比如:DlgFaceRecg dlgFaceRecg;

// CFROCXCtrl 消息处理程序

int CFROCXCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (COleControl::OnCreate(lpCreateStruct) == -1)
return -1;
dlgFaceRecg.Create(IDD_DIALOG1,this);//这里可以用你的控件的IDC_XX
return 0;
}
来自美国认真的兔子
2011-01-19 · TA获得超过644个赞
知道小有建树答主
回答量:550
采纳率:100%
帮助的人:424万
展开全部
其成员函数CComBox::FromHandle(HWND hWnd)
写个示例不知道变下。。。
完整如下:
CComBox* com;
HWND hwnd = GetDlgItem(hwnd,IDC_XX)->GetSafeHwnd();//这个hwnd是控件的。。。
com = (CComBox*)FromHandle(hwnd);
请注意你用与不用::的区别,
那这样一句就OK了
CWnd* pCtrl = this->FromHandle(::GetDlgItem(hwnd,IDC_XX));
注意这里FromHandle是CWnd的一个静态函数,也就是说
我上面的这句只能用在CWnd或者CWnd的子类,如CDIalog,或者你自己的继承自CWnd的类中!!!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
豆之刀人辞0V
2011-01-17 · TA获得超过331个赞
知道小有建树答主
回答量:160
采纳率:0%
帮助的人:70万
展开全部
(CComBox *)GetDlgItem(IDC_DISK)->EnableWindow(TRUE);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式