关于VB的句柄

来源:百度知道 编辑:UC知道 时间:2024/06/03 03:56:04
我想知道ME.HWND和GETWINDOW ME.HWND,gw_owner得到的句柄有什么区别

还是有区别的,GetWindow(Me.hwnd, GW_OWNER)获得是该窗口句柄所有者的句柄,而me.hwnd只是本窗口的句柄,比如Me.Hwnd在不同的窗口中值是不一样的,但是GetWindow(Me.hwnd, GW_OWNER)返回的结果是一样的。

可以使用 GetWindow 来列出窗口,其中包括子窗口。但是,调用 GetWindow 来执行此任务的应用程序存在陷入无限循环的风险或引用已销毁窗口的句柄的风险。使用 EnumWindows 枚举顶级窗口,使用 EnumChildWindows 枚举子窗口,或者使用 EnumThreadWindows 枚举与某个线程关联的所有非子窗口是首选方法
得到的hwnd是父窗口的句柄
GetWindow(Me.hwnd, GW_OWNER)= GetWindowLong(Me.hwnd, GWL_HWNDPARENT)