句柄 <-> 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)    收藏  举报

导航