窗口句柄浅析和获取窗口句柄的方法-飞外

句柄(HANDLE)是Windows程序中一个重要的概念,使用也非常频繁。在Windows程序中,有各种各样的资源(窗口、图标、光标等),系统在创建这些资源时会为它们分配内存,并返回标识这些资源的标识号,即句柄。

窗口句柄是windows句柄的一种,且是重要的一种句柄。在Windows应用程序中,窗口是通过窗口句柄(HWND)来标识的。我们要对某个窗口进行操作,首先就要得到这个窗口的句柄。

窗口句柄的概念比较抽象,简单说窗口句柄就是一个窗口(window)的代表。我们通过几个例子来认识它。

1.LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);

windows窗口处理函数,windows消息机制说的是,每当某个窗口发生变化(比如改变 大小,移动),windows系统都会发相应的消息(wm_size,wm_move)给这个窗口。即调用函数 SendMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam);注意这里WndProc和SendMessage的面中的表单控件的HWND或ID,还是其他的东东,总之是能识别他的东西。。。这个我很困惑,没办法!

不清楚地方,大家要参照MSDN啊

其它获取句柄的方法:

1.根据id获取窗口句柄
Hwnd hwnd = GetDlgItem(hwndParent,id).
2.根据窗口句柄,获取id
id = GetWindowLong(hwndChild,GWL_ID)
id = GetDlgCtrlID(hwndchild).
3.获取实例句柄的若干方法
hInst = GetWindowLong(hwnd,GWL_HINSTANCE)
把HINSTANCE 作为全局变量保存.
当建立窗口时,参数lparam指向了一个建立结构的地址.
可以这样获取实例句柄
hInst = ((LPCREATESTRUCT)lParam)- hInstance.