EnumChildWindows的威力
2005-01-11 10:08
381 查看
版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处http://xinyistudio.vicp.net/和作者信息及本声明
很早就写过类似spy++和查看密码窗口的东西,一直想给这个小东西再加点特别的。
前段时间对软件安装注册发生了兴趣,有些软件如果你不输入正确注册码,那该死的“下一步”按钮就一直disable。这次我就让spy++彻底spy到底,把那个注册用的按钮置亮,让我轻松进入“下一步”,呵呵...。
我的想法是光标移到指定的窗口上后,探测这个窗口上到底有多少按钮,如果有,就将它们都Enable。
在这里我不想讨论怎样具体实现这个功能,但你要知道的是想得到这些被disable窗口(按钮)的句柄是根本无法通过WindowFromPoint这个API函数得到的,GetWindow也不要妄想了。
顺手查了下MSDN,看到EnumChildWindows可是个好东西,可以枚举一个父窗口的所有子窗口:
BOOL EnumChildWindows(
HWND hWndParent, // handle to parent window // 父窗口句柄
WNDENUMPROC lpEnumFunc, // callback function // 回调函数的地址
LPARAM lParam // application-defined value // 你自已定义的参数
);
就这么简单,让我们再定义一个回调函数,像下面这样:
BOOL CALLBACK EnumChildProc(
HWND hwnd, // handle to child window
LPARAM lParam // application-defined value
);
注意:这个回调函数要么是类的静态函数,要么就是一个全局的函数。
--------------------------------
在调用EnumChildWindows 这个函数时,直到调用到最个一个子窗口被枚举或回调函数返回一个false,否则将一直枚举下去。
有了上面的知识,我想你应该知道怎么做了。
很早就写过类似spy++和查看密码窗口的东西,一直想给这个小东西再加点特别的。
前段时间对软件安装注册发生了兴趣,有些软件如果你不输入正确注册码,那该死的“下一步”按钮就一直disable。这次我就让spy++彻底spy到底,把那个注册用的按钮置亮,让我轻松进入“下一步”,呵呵...。
我的想法是光标移到指定的窗口上后,探测这个窗口上到底有多少按钮,如果有,就将它们都Enable。
在这里我不想讨论怎样具体实现这个功能,但你要知道的是想得到这些被disable窗口(按钮)的句柄是根本无法通过WindowFromPoint这个API函数得到的,GetWindow也不要妄想了。
顺手查了下MSDN,看到EnumChildWindows可是个好东西,可以枚举一个父窗口的所有子窗口:
BOOL EnumChildWindows(
HWND hWndParent, // handle to parent window // 父窗口句柄
WNDENUMPROC lpEnumFunc, // callback function // 回调函数的地址
LPARAM lParam // application-defined value // 你自已定义的参数
);
就这么简单,让我们再定义一个回调函数,像下面这样:
BOOL CALLBACK EnumChildProc(
HWND hwnd, // handle to child window
LPARAM lParam // application-defined value
);
注意:这个回调函数要么是类的静态函数,要么就是一个全局的函数。
--------------------------------
在调用EnumChildWindows 这个函数时,直到调用到最个一个子窗口被枚举或回调函数返回一个false,否则将一直枚举下去。
有了上面的知识,我想你应该知道怎么做了。
相关文章推荐
- EnumChildWindows的威力
- EnumChildWindows的威力
- 获取子窗口句柄EnumChildWindows的威力
- 获取子窗口句柄EnumChildWindows的威力
- ]用EnumChildWindows遍历窗口的方法
- EnumChildWindows 枚举子窗体句柄
- 调用EnumChildWindows来枚举子窗口
- PostMessage和SendMessage有什么区别?(有EnumChildWindowsProc的例子)
- [win32 api] FindWindow FindWindowEx EnumChildWindows
- 枚举子窗口/子窗体 EnumChildWindows 函数需要注意,它已经递归过了!
- 使用EnumChildWindows函数遍历窗体上所有控件
- 学习EnumChildWindows Function
- VC用EnumChildWindows枚举所有复选框,并勾选(取消勾选)
- MFC EnumChildWindows的使用
- [转]C#中捕捉对话框的文本内容 EnumChildWindows
- VC++ EnumChildWindows
- EnumChildWindows的使用
- EnumChildWindows 枚举子窗体
- C#应用WindowsApi实现查找\枚举(FindWindow、EnumChildWindows)窗体控件,并发送消息。
- EnumChildWindows的使用