请问对于绘制的控件,怎么得到他的句柄呢?

诸葛不亮2909 2022-12-14 21:11:49

请问各位大侠:  用Delphi 获取控件句柄 ,但有些软件的控件是绘制的,请问怎么得到他的句柄呢?

 

...全文
479 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
redamancy_me 2023-03-07
  • 打赏
  • 举报
回复

如果某些软件的控件是自绘制的,则无法使用通常的方式获取它们的句柄。这种情况下,你可以尝试以下方法来获取控件的句柄:

使用 Windows API 函数 EnumWindows()、EnumChildWindows() 和 FindWindow() 来枚举窗口和子窗口,以查找目标控件的句柄。在调用 EnumWindows() 和 EnumChildWindows() 函数时,你需要传递一个回调函数来处理每个窗口和子窗口。

使用 Windows API 函数 GetDesktopWindow() 和 WindowFromPoint() 来获取指定坐标下的窗口句柄。你可以尝试在控件周围移动鼠标,并使用 WindowFromPoint() 函数来获取最接近的控件句柄。

使用 Windows API 函数 GetWindowRect() 来获取窗口的位置和大小,然后使用 Windows API 函数 BitBlt() 来获取窗口的图像。你可以分析窗口的图像来确定控件的位置和大小,并使用 Windows API 函数 CreateWindow() 来创建一个具有相同位置和大小的新窗口。

以上方法不一定适用于所有情况,但它们可能会对某些特定的自绘制控件有效。

  • 打赏
  • 举报
回复

所谓自绘制,就是在parent控制上绘制,自己没有窗口,当然也就没有句柄了。

诸葛不亮2909 2022-12-16
  • 举报
回复
@日立奔腾浪潮微软松下联想 请问那怎样能用DELPHI 找到找到这个控件,给他发消息呢?
tanqth 2022-12-14
  • 打赏
  • 举报
回复

你这重复提问呢。

5,943

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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