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)返回的是控件的句柄,而不是控件对象 展开
但我现在是在我自己定义的类中,不是在对话框类中
我现在用::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)返回的是控件的句柄,而不是控件对象 展开
3个回答
展开全部
首先在你自己的类中定义一个要使用这个控件的变量,比如:DlgFaceRecg dlgFaceRecg;
// CFROCXCtrl 消息处理程序
int CFROCXCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (COleControl::OnCreate(lpCreateStruct) == -1)
return -1;
dlgFaceRecg.Create(IDD_DIALOG1,this);//这里可以用你的控件的IDC_XX
return 0;
}
// CFROCXCtrl 消息处理程序
int CFROCXCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (COleControl::OnCreate(lpCreateStruct) == -1)
return -1;
dlgFaceRecg.Create(IDD_DIALOG1,this);//这里可以用你的控件的IDC_XX
return 0;
}
展开全部
其成员函数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的类中!!!!
写个示例不知道变下。。。
完整如下:
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的类中!!!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
(CComBox *)GetDlgItem(IDC_DISK)->EnableWindow(TRUE);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询