首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

如何获取最大化、最小化、关闭按钮的句柄

2012-02-14 
怎么获取最大化、最小化、关闭按钮的句柄我发现有人能通过GetSystemMenu、GetMenuItemCount和RemoveMenu来关

怎么获取最大化、最小化、关闭按钮的句柄
我发现有人能通过GetSystemMenu、GetMenuItemCount和RemoveMenu来关闭窗口的关闭按钮(X)
hMenu = GetSystemMenu(Me.hwnd, 0)
nCount = GetMenuItemCount(hMenu)
Call RemoveMenu(hMenu, nCount - 1, MF_REMOVE Or MF_BYPOSITION)

我想找到关闭按钮的句柄,应该怎么做?貌似FindWindow和GetSubMenu做不到啊.



我的目的是想枚举所有的窗口,
用EnumWindows来列举所有句柄之后,
通过判断句柄窗口是否存在关闭按钮来排除一些非正常的句柄。

当然如果有更好的办法请推荐一个

[解决办法]
根本就不用去获得这个句柄,你只需要获得窗体的句柄,然后使用SendMessage或PostMessage向其发送对应消息即可,比如:最小化消息、最大化消息、关闭消息
[解决办法]
做过之类化窗口程序就应该比较清楚,窗口上的最大化、最小化、关闭按钮是没有句柄的。
如果想排除多余的窗口,可以参考一下 WinCE 中的任务栏代码,过程很详细,虽然没有x86
架构下的任务栏那么全,但还是很值得参考的。这个过程主要是综合多个条件判断的,如:
窗口是否显示、窗口样式、窗口扩展样式等等约10多个条件综合判断来过滤的。

热点排行