怎样获得窗口的句柄和其他信息??

kuangjingbo 2003-09-17 04:59:24
vc++中的调试工具spy++,其中有个find window的功能:只要把鼠标拖到任意一个窗口或者控件的上面就可以得到该窗口或者控件的handle、caption、style、class等信息。这是怎样实现的?
我想应该是与鼠标的位置信息有关,到底怎样通过鼠标的位置得到它下面窗口的句柄和其他信息呢?请高手多多赐教!!
...全文
144 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
shenming123 2003-09-19
  • 打赏
  • 举报
回复
GetClassName可以通过窗口句柄获得类名。
int GetClassName(HWND hWnd,
LPTSTR lpClassName,
int nMaxCount);
kuangjingbo 2003-09-18
  • 打赏
  • 举报
回复
caption、style可以用GetWindowLong与GetWindowText
但是我还是找不到怎样获得class的信息的函数。
kuangjingbo 2003-09-18
  • 打赏
  • 举报
回复
还有,怎么获得其它handle、caption、style、class信息呢??
kuangjingbo 2003-09-18
  • 打赏
  • 举报
回复
谢谢milson(ifaq),你的方法更加简单了
谢谢shenming123(bluesky),但是我是一个初学者,还没有学到hook呢!!
我要继续努力呀!!

期待其他的高手!!
shenming123 2003-09-18
  • 打赏
  • 举报
回复
用全局鼠标钩子可以实现SetWindowsHookEx
要把它做成一个dll
它可以获得鼠标位置当前窗口的信息
milson 2003-09-18
  • 打赏
  • 举报
回复
我觉得是用WindowFromPoint()和ChildWindowFromPoint()实现的。
kuangjingbo 2003-09-18
  • 打赏
  • 举报
回复
怎么没有人了呢?
kuangjingbo 2003-09-17
  • 打赏
  • 举报
回复
to: whoishere(我来也)
有道理,具体的函数的用法呢?还有那个z-order怎么用?
其他高手有什么高见吗??
whoishere 2003-09-17
  • 打赏
  • 举报
回复
我觉得可能是这样:

首先通过EnumWindows枚举当前所有的窗口,找出当前鼠标落在哪个窗口的范围内
其次,这样可能能得到多个窗口,那么需要依据它们的z-order来得到最上面的那个窗口
然后,在通过EnumChildWindows枚举该窗口下的子窗口,以鼠标位置得到当前所处的子窗口,那么通过这个子窗口句柄以获取其他信息了。

欢迎大家对我的看法进行指正。
kuangjingbo 2003-09-17
  • 打赏
  • 举报
回复
自己先up一下。

15,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧