VC中判断指定窗口是否被其他窗口遮挡
本来是想判断当前窗口是否在最前面,无奈办法用尽就是不行,于是想换个思路:判断指定窗口是否被其他窗口遮挡。然后掘网三尺,找到了这个:
bool CTestTray2Dlg::IsCoveredByOtherWindow(HWND hWnd)
{
RECT rcTarget;
::GetWindowRect(hWnd, &rcTarget);
bool isChild = (WS_CHILD == (::GetWindowLong(hWnd, GWL_STYLE) & WS_CHILD));
if (::GetDesktopWindow() == hWnd)
hWnd = ::GetWindow(::GetTopWindow(hWnd), GW_HWNDLAST);
do{
HWND hCurWnd = hWnd;
while(NULL != (hWnd = ::GetNextWindow(hWnd, GW_HWNDPREV))){
if (::IsWindowVisible(hWnd)){
RECT rcWnd;
::GetWindowRect(hWnd, &rcWnd);
if(!((rcWnd.right < rcTarget.left) || (rcWnd.left > rcTarget.right) ||
(rcWnd.bottom < rcTarget.top) || (rcWnd.top > rcTarget.bottom))){
return true;
}
}
}
if(isChild){
hWnd = ::GetParent(hCurWnd);
isChild = hWnd ? (WS_CHILD == (::GetWindowLong(hWnd, GWL_STYLE) & WS_CHILD)) : false;
}
else
break;
}while(true);
return false;
}
大意是自底向上层层遍历窗口,检查是否有窗口与指定窗口有重叠的地方。
试了下,还行。勉强解决了一问题,感谢网友:Pear(crabshai)
还有他的好贴:http://topic.csdn.net/u/20081007/23/4c84494d-6caa-4eb2-a2c4-2f73c67e8a63.html
http://blog.csdn.net/yuvmen/article/details/4546427
VC中判断指定窗口是否被其他窗口遮挡的更多相关文章
- 在JSP使用EL中判断指定元素是否存在于指定集合中
在JSP使用EL中判断指定元素是否存在于指定集合中 1.问题描述 在JSP页面中使用EL表达式判断一个指定元素是否存在于指定集合中? 2.问题解决 eg:指定集合:collection:{1,2,3, ...
- VC++中使用用户自定义消息及自定制窗口技巧
Windows 应用程序所要做的每项工作几乎都是基于消息处理的, Windows 系统消息分为常用 Windows 消息,控件通知消息和命令.然而,有时我们需要定义自己的消息来通知程序什么事情发生了, ...
- SQLServer判断指定列的默认值是否存在,并修改默认值
SQLServer判断指定列的默认值是否存在,并修改默认值 2008年10月21日 星期二 下午 12:08 if exists(select A.name as DefaultName,B.name ...
- Js的iframe相关问题,如何判断当前是否在iframe中,iframe和它的父窗口如何通信
一.前言: 在web中,为了丰富我们的内容,往往需要引用其它HTML文件,这时候就需要用到 iframe 标签,本文就主要记录一下使用iframe所需要注意的问题 iframe 所使用的环境(笔者所遇 ...
- String的两个API,判断指定字符串是否包含另一字符串,在字符串中删除指定字符串。
// 在字符串中删除指定字符串. String phoneNum="1795112345"; phoneNum = phoneNum.replace("17951&quo ...
- C#判断一个类中有无"指定名称"的方法
C#中可以通过反射分析元数据来解决这个问题,示例代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 2 ...
- 判断指定对象是否进入浏览器可视窗口,true 进入,false 没进入
//判断指定对象是否进入浏览器可视窗口,true 进入,false 没进入 var $win = $(window);//jQuery 的 window 对象 即:文档对象 function isVi ...
- Helium文档12-WebUI自动化-go_to在当前的Web浏览器窗口中打开指定的URL
前言 go_to在当前的Web浏览器窗口中打开指定的URL 入参介绍 url def go_to(url): """ :param url: URL to open. : ...
- JAVA判断指定url地址是否匹配指定url集合中的任意一个
判断字符串为空和判断集合是否为空用到依赖,也可以改成自己的方式 <!-- Spring Web --> <dependency> <groupId>org.spri ...
随机推荐
- SQL练习之两个列值的交换
SELECT * FROM dbo.test2
- .net string format
转自:http://www.cnblogs.com/jobs2/p/3948049.html 转自:http://jingyan.baidu.com/article/48206aeaf8c52f216 ...
- android Fragment相关概念简介
Fragment 详细介绍连接:http://blog.csdn.net/harvic880925/article/details/44927375 fragment是一种控制器对象,activity ...
- Android Studio 解决方法No JVM installation found. Please install a 64-bit JDK.
————————— Error launching Android Studio ————————— No JVM installation found. Please install a 64-bi ...
- tee 解决readonly 文件无法修改
tee 是什么: 老规矩,找男人问.
- Vue.js——webpack
Vue.js——60分钟webpack项目模板快速入门 browserify是一个 CommonJS风格的模块管理和打包工具,上一篇我们简单地介绍了Vue.js官方基于browserify构筑的一套开 ...
- Codeforces 353D Queue(构造法)
[题目链接] http://codeforces.com/contest/353/problem/D [题目大意] 10^6个男女排队,每一秒,如果男生在女生前面,即pos[i]是男生,pos[i+1 ...
- IOS开发之----协议与委托(Protocol and Delegate) 实例解析
1 协议: 协议,类似于Java或C#语言中的接口,它限制了实现类必须拥有哪些方法. 它是对对象行为的定义,也是对功能的规范. 在写示例之前我给大家说下@required和@optional这两个关键 ...
- CreateFileMapping使用方法
CreateFileMapping的MSDN翻译和使用心得 測试创建和打开文件映射的时候老是得到"句柄无效"的错误, 细致看了MSDN以后才发觉是函数认识不透, 这里把相关的解 ...
- SASS组件开发
*:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* ...