句柄 <-> ID <-> 指针
内容整理自网络
“ID”是窗口资源的编号,“句柄”是window对窗口的描述封装的指针,“指针”是对句柄的类封装,个人理解。
句柄 -> 指针:
pWnd = CWnd::FromHandle(hWnd); //a temporary CWnd object is created and attached.
pWnd->Attach(hWnd); //Attaches a window to a CWnd object
句柄 -> ID
ID = GetWindowLong(hWnd, GWL_ID);
ID -> 句柄
hWnd = ::GetDlgItem(hParentWnd, ID);
ID -> 指针
pWnd = CWnd::GetDlgItem(ID);
指针 -> 句柄:
hWnd=pWnd->GetSafeHandle();
hWnd = pWnd->m_hWnd;
指针 -> ID
ID = GetWindowLong(pWnd->GetSafeHwnd, GWL_ID);
ID = GetDlgCtrlID();
附:
ID -> HICON
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
其他的一些方法:
GetActiveWindow 取当前活动窗口句柄
AfxGetMainWnd 取主窗口句柄
GetForegroundWindow 取前台窗口句柄
FindWindow 寻找参数指定的窗口
EnumWindow 枚举窗口
posted on 2013-04-22 12:24 Waaaaaall-E 阅读(179) 评论(0) 收藏 举报
浙公网安备 33010602011771号