VC中句柄、指针、ID之间的转换
来源:互联网 发布:js对象转换json字符串 编辑:程序博客网 时间:2024/04/28 07:48
win32直接操作的是句柄HANDLE,每个句柄就对应windows窗口,而vc对HANDLE进行类封装,间接操作的都是HANDLE,现在句柄只是类的一个成员变量。
从句柄到指针
CWnd* pWnd=CWnd::FromHandle(hWnd); //a temporary CWnd object is created //and attached.
pWnd->Attach(hWnd); //Attaches a Windows window to a CWnd object
从指针到句柄
HWND hWnd=pWnd->GetSafeHandle();
hWnd=pWnd->m_hWnd;
SDK编程中窗口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)
HWND FindWindowEx(HWND hwndParent, HWND hwndChildAfter,LPCTSTR lpClassName, LPCTSTR lpWindowName)
2.HWND WindowFromPoint(POINT& Point)//获得当前鼠标光标位置的窗口HWND
本文来自CSDN博客:http://blog.csdn.net/cy757/archive/2009/08/07/4423756.aspx
VC++中有关句柄和指针及其转换
1.MFC窗口的句柄和指针的转换
(1) 一般窗口对象都会有一个其对应的句柄变量,所以我们可以取此对象的m_hWnd属性来得到句柄。
(2)使用GetSafeHwnd函数取得程序所在窗口类的句柄
(3)使用FromHandle函数来通过句柄得到其想要的指针
其他的一些方法:
GetActiveWindow 取当前活动窗口句柄
AfxGetMainWnd 取主窗口句柄
GetForegroundWindow 取前台窗口句柄
FindWindow寻找参数指定的窗口
EnumWindow枚举窗口
2. 上下文无关设备的句柄和指针的转换
(1)this->m_hDC
(2)CDC::GetSafeHdc
(3)可以使用FromHandle函数来通过句柄得到其想要的指针
3.Gdi对象的句柄和指针的转换
(1)this->m_hObject
(2)CGdiObject::GetSafeHandle
(3)可以使用FromHandle函数来通过句柄得到其想要的指针
4.窗口、控件的指针和句柄的相互转化
(1)指针转化为句柄
在MFC应用程序中首先要获得窗口的指针,然后将其转化为句柄
CWnd* pWnd;
HANDLE hWnd = pWnd->GetSafeHwnd();
(2)句柄转化为指针
在MFC应用程序中首先获得对话框控件的句柄,然后获得其指针
HANDLE hWnd;
GetDlgItem(IDC_xxx,&hWnd);
CWnd * pWnd = FromHandle(hWnd);
获得程序窗口指针的办法
(1)获得主框架窗口指针(任何时候都可以用,只要是MFC程序中)
CWnd* pWnd = AfxGetMainWnd();
(2)获得对话框中控件指针
CWnd* pWnd = GetDlgItem(IDC_xxx);
(3)获得对话框中某控件的句柄
HANDLE GetDlgItem(m_hDLG,m_nID_DlgItem);
(4)获得GDI对象的句柄
HANDLE m_hGDIObj = m_pGDIObj->GetSafeHanle();
本文来自CSDN博客:http://blog.csdn.net/lovegod12/archive/2009/04/19/4092249.aspx
本文来自http://www.cnblogs.com/lidabo/archive/2012/07/04/2576400.html
- VC中句柄、指针、ID之间的转换
- VC中句柄、指针、ID之间的转换
- VC中句柄、指针、ID之间的转换
- VC中句柄、指针、ID之间的转换
- VC中句柄、指针、ID之间的转换
- VC中句柄、指针、ID之间的转换
- VC中句柄、指针、ID之间的转换
- VC中句柄、指针、ID之间的转换
- VC中句柄、指针、ID之间的转换
- VC中句柄、指针、ID之间的转换
- vc中ID,指针,句柄之间如何相互转换
- VC 之句柄、指针和ID之间的转换
- 句柄、指针和ID之间的转换
- 句柄、指针、ID之间的转换
- 句柄、指针、ID之间的转换
- 窗口句柄、指针、ID之间的转换
- VC句柄和指针之间的转换
- VC中ID、句柄、指针、对象互相转换
- POJ 2186(Popular Cows)
- Dual Palindromes USACO
- WordPress代码高亮插件SyntaxHighlighter使用详解
- 控制面板命令,设置控制面板快捷键的方法
- 字符串基本操作
- VC中句柄、指针、ID之间的转换
- iOS开发者帐户申请
- 【研究生】毕业答辩PPT制作和讲述要点(整理)
- autorelase
- 程序员发展之路
- Array 排序
- 中文系统上安装英文win xp sp3方法
- P2P中的NAT穿越方案
- 多项目相互依赖的Java程序打包并引入外部Jar包方式