当窗口不在最上层的时候,如何判断窗体是否被其他窗口挡住

風鈴 2008-05-14 03:59:45
当窗体不在最上层时,
偶是想判断这窗体是否有被其他窗口挡住,
是被挡住一部分,还是全被挡住了.
如果是窗体上的某个控件呢,能判断控件有没被挡住不?
不知有没办法判断
...全文
408 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
白雲 2008-05-15
  • 打赏
  • 举报
回复
循环调用GetWindow取得在你窗口之上的所有窗口句柄:
上层窗口句柄 = GetWindow(你的窗口句柄, GW_HWNDPREV)

有了窗口句柄就可以取得窗口的位置和大小

PS:看行不行吧.擦汗.
yilanwuyu123 2008-05-14
  • 打赏
  • 举报
回复
去操作屏幕上的像素点吧
kingstou 2008-05-14
  • 打赏
  • 举报
回复
如果你强悍的话,可以试试屏幕抓图,然后根据目前程序的位置获取在图中的位置,然后分析图上面有没有其他程序的画面

^_^
hanjoe109 2008-05-14
  • 打赏
  • 举报
回复
哎,我也僅僅知道MDI窗體的判斷
風鈴 2008-05-14
  • 打赏
  • 举报
回复
orz
还要挂钩系统系统消息?那不是米戏了?
net0003 2008-05-14
  • 打赏
  • 举报
回复
继续学习
noky 2008-05-14
  • 打赏
  • 举报
回复
首先如果是mdichird窗体,那么父窗体和子窗体之间是可以办到的,只要判断那个窗体是激活的就行了。
如果两个窗体没有任何的关系,判断起来就比较的困难,“除非你去截取系统消息,但是这样的话非常的麻烦,要处理的消息太多了”
風鈴 2008-05-14
  • 打赏
  • 举报
回复
焦点?当窗口不在Active状态时就是失去了焦点.
但这和他有没被其他窗口挡住有关系吗?
widnows绘制窗口的时候,如果某个窗口被挡住了的时候,
系统还会去绘制被挡住的部分吗?
偶印象中好像是系统不会去重绘被挡住的部分.
PS:默..楼上的知道的话,就直接说出来吧.偶是不大清楚了.
noky 2008-05-14
  • 打赏
  • 举报
回复
你应该去学习什么是“焦点”,以及“焦点”在Windows系统的作用,然后你就不会问这样的问题了。
funlove999 2008-05-14
  • 打赏
  • 举报
回复
关注一下,

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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