MFC 获取对话框的指针

博客主要围绕MFC对话框展开,介绍了对其操作需先获取对象指针,详细解读了获取主窗口对话框和指定对话框对象指针的方式,还提及了ID、指针、句柄三者的转化,附注中给出获得窗体句柄的三种方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对于MFC的对话框,要对其操作必须先获取到它的对象指针,下面是对对话框的对象指针的获取方式的解读
1.获取主窗口的对话框的对象指针

CWnd* pWnd = AfxGetApp()->GetMainWnd();

2.获取指定对话框的对象指针

CWnd* pWnd = FindWindow(NULL, _T("对话框的名称"));

3.ID , 指针, 句柄三者的转化

ID--HANDLE--HWND三者之间的互相转换 
id->句柄-----------hWnd = ::GetDlgItem(hParentWnd,id); 
id->指针-----------CWnd::GetDlgItem(); 
句柄->id-----------id = GetWindowLong(hWnd,GWL_ID); 
句柄->指针--------CWnd *pWnd=CWnd::FromHandle(hWnd); 
指针->ID----------id = GetWindowLong(pWnd->GetSafeHwnd,GWL_ID); 
GetDlgCtrlID(); 
指针->句柄--------hWnd=cWnd.GetSafeHandle() or mywnd->m_hWnd;
HICON->ID--------HICON hIcon = AfxGetApp()->LoadIcon(nIconID);
HICON hIcon = LoadIcon(AfxGetApp()->m_hInstance, MAKEINTRESOURCE(nIconID));

附注:获得窗体句柄三种方法

1.HWND FindWindow(LPCTSTR lpClassName, LPCTSTR lpWindowName)
2. HWND FindWindowEx(HWND hwndParent, HWND hwndChildAfter,LPCTSTR lpClassName, LPCTSTR lpWindowName)
3.HWND WindowFromPoint(POINT& Point)//获得当前鼠标光标位置的窗体HWND



作者:彦子凡
链接:https://www.jianshu.com/p/789138dfad79
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值