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

2025-05-21 03:06:10
推荐回答(3个)
回答1:

首先在你自己的类中定义一个要使用这个控件的变量,比如:DlgFaceRecg dlgFaceRecg;

// CFROCXCtrl 消息处理程序

int CFROCXCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (COleControl::OnCreate(lpCreateStruct) == -1)
return -1;
dlgFaceRecg.Create(IDD_DIALOG1,this);//这里可以用你的控件的IDC_XX
return 0;
}

回答2:

其成员函数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的类中!!!!

回答3:

(CComBox *)GetDlgItem(IDC_DISK)->EnableWindow(TRUE);