CWnd与HWND的区别和获取方法
2013-03-07 13:31
211 查看
一、区别
HWND是句柄,CWnd是MFC窗体类,CWnd中包含HWND句柄成员对象是m_hWnd.
HWND是Windows系统中对所有窗口的一种标识,即窗口句柄。这是一个SDK概念。
CWnd是MFC类库中所有窗口类的基类。微软在MFC中将所有窗口的通用操作都封装到了这个类中,如:ShowWindow等等,同时它也封装了窗口句柄即m_hWnd成员。
二、如何得到窗口类对象指针CWnd * pCWnd
1,在本窗体里,直接用 this->,//this就是本窗体的窗口对象指针
2,在任意窗口中获得主窗体的对象指针:
CWnd *pWnd = AfxGetApp()->m_pMainWnd, //AfxGetApp()->m_pMainWnd就是主窗体的窗口对象指针
或者:CWnd *pWnd= AfxGetMainWnd();
3,通过ID号获得窗口对象指针:
CWnd *pWnd=GetDlgItem(ID_EDIT_NAME); //GetDlgItem 函数可以得到某个控件的窗口对象指针
4. HWND hWnd = pMainWnd->m_hWnd;
三、如何得到窗口句柄HWND Handle
可以通过获得CWnd对象指针后获得
四、转换
CWnd * pCWnd;
HWND Handle;
pCWnd=FromHandle(Handle);
Handle=GetSafeHwnd(pCWnd); //或Handle=pCWnd->m_hWnd;
HWND是句柄,CWnd是MFC窗体类,CWnd中包含HWND句柄成员对象是m_hWnd.
HWND是Windows系统中对所有窗口的一种标识,即窗口句柄。这是一个SDK概念。
CWnd是MFC类库中所有窗口类的基类。微软在MFC中将所有窗口的通用操作都封装到了这个类中,如:ShowWindow等等,同时它也封装了窗口句柄即m_hWnd成员。
二、如何得到窗口类对象指针CWnd * pCWnd
1,在本窗体里,直接用 this->,//this就是本窗体的窗口对象指针
2,在任意窗口中获得主窗体的对象指针:
CWnd *pWnd = AfxGetApp()->m_pMainWnd, //AfxGetApp()->m_pMainWnd就是主窗体的窗口对象指针
或者:CWnd *pWnd= AfxGetMainWnd();
3,通过ID号获得窗口对象指针:
CWnd *pWnd=GetDlgItem(ID_EDIT_NAME); //GetDlgItem 函数可以得到某个控件的窗口对象指针
4. HWND hWnd = pMainWnd->m_hWnd;
三、如何得到窗口句柄HWND Handle
可以通过获得CWnd对象指针后获得
四、转换
CWnd * pCWnd;
HWND Handle;
pCWnd=FromHandle(Handle);
Handle=GetSafeHwnd(pCWnd); //或Handle=pCWnd->m_hWnd;
相关文章推荐
- CWND和HWND之间的关系和转换 和获取方法
- CWnd与HWND的区别与转换 如何获取本窗体对象
- CWnd与HWND的区别与转换 如何获取本窗体对象
- CWnd与HWND的区别以、转换以及如何获取本窗体对象
- HINSTANCE HANDLE HWND 的区别及一般方法
- CWnd和HWND的区别(hWnd只是CWnd对象的一个成员变量,代表与这个对象绑定的窗口)
- class_copyPropertyList与class_copyIvarList区别,获取属性,使用runtime方法的注意事项
- CWnd与HWND的区别与转换
- MFC的CWnd和HWND之间互相转换方法 .
- Android SdkVersion的区别及获取版本信息方法
- android中获取context的多种方法的区别(this,getbasecontext(),getApplicationcontext())
- jQuery获取文本节点之-text()/val()/html() 方法区别
- CWnd与HWND的区别与转换
- MFC 定制控件(Customize Control) 及 MFC CWnd和WIN32 HWND关联方法
- CWnd与HWND的区别与转换
- Android中的Context几种获取方法和区别
- CWnd与HWND的区别与转换
- readonly 与 disabled的区别(disabled提交后获取不到该值的解决方法)
- 安卓中为了获取context的方法和区别
- jQuery获取文本节点之 text()/val()/html() 方法区别