请妖哥来回答,Spy4Win目标窗口的红色边框怎样绘制和消除

Soyokaze 2015-03-17 02:41:06
一直使用这个软件N年了,一个项目需要和它类似的功能,就是获得鼠标下面窗口的句柄,整体上还是有思路的,就是在绘制红色边框上不清楚该怎么做。



如图,获得窗口矩形以后,是用什么GDI函数绘制呢,FrameRect()还是BitBlt()呢。
鼠标离开这个窗口时,需要恢复红色边框覆盖的像素,怎样恢复呢?还有怎样知道鼠标已经离开了这个窗口呢?
...全文
204 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ccrun.com 2015-03-18
  • 打赏
  • 举报
回复
Spy4Win 的工作原理:当鼠标按下后,有个MouseDown的标志设为True,然后在鼠标移动过程中(OnMouseMove)不停的获取鼠标下窗口句柄并且用Canvas->Rectangle绘制边框(画笔模式是pmNotXor),还要和上一个窗口句柄作比较,如果和上一个窗口不同,那么还要获取到上一个窗口的矩形并绘制边框(再次绘制就擦除了上一次的绘制)
Soyokaze 2015-03-18
  • 打赏
  • 举报
回复
结贴,感谢accessysq与ccrun两位的回答。
  • 打赏
  • 举报
回复
getwindowfrompoint获得句柄,然后获得控件区域,通过gdi话边框,保存区域和句柄。 当鼠标移动时重新获取句柄判断是否原来的句柄,如果不是想用异或的方式重新画上边框,原来的边框就没了。 然后又重新获取区域,开始新的处理。。。。 一直重复。

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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