Windows中检测当前是否有窗口全屏
不时看到有人问起如何判断当前是否有窗口正处于全屏状态?
不过, 在解决这个问题之前先来解决一个简单的问题?
什么是全屏?
相当一部分人认为: 窗口如果是最大化的, 那么它就是最大化的? 真是这样吗? 简直BS!.
全屏是指窗口整体大小至少占据了整个屏幕, 而不是除任务栏以外的那一部分空间!
而最大化是指窗口整体大小占据了桌面的工作区(Workarea)!
所以, 不要只是简单地调用IsZoomed()就决定窗口当前是否全屏, 那是判断是否最大化的作为;
也不要只是把窗口的客户区大小和屏幕大小作比较;
也不要只是比较窗口的left和top是否小于0.
可以采用如下的方式作判断:
#include <windows.h>
#include <iostream> bool CheckFullscreen()
{
bool bFullScreen = false;
HWND hWnd = GetForegroundWindow();
RECT rcApp, rcDesk;
GetWindowRect(GetDesktopWindow(), &rcDesk);
if(hWnd!=GetDesktopWindow() && hWnd!=GetShellWindow()){
GetWindowRect(hWnd, &rcApp);
if(rcApp.left<=rcDesk.left
&& rcApp.top<=rcDesk.top
&& rcApp.right>=rcDesk.right
&& rcApp.bottom>=rcDesk.bottom)
{
bFullScreen = true;
}
}
return bFullScreen;
} int main()
{
for(;;){
std::cout << (CheckFullscreen()?"有":"没有") << "窗口全屏~\n";
Sleep();
}
return ;
}
参考:
http://stackoverflow.com/questions/7009080/detecting-full-screen-mode-in-windows
http://bbs.csdn.net/topics/390838652#post-397826207
Windows中检测当前是否有窗口全屏的更多相关文章
- 背水一战 Windows 10 (3) - UI: 窗口全屏, 窗口尺寸
[源码下载] 背水一战 Windows 10 (3) - UI: 窗口全屏, 窗口尺寸 作者:webabcd 介绍背水一战 Windows 10 之 UI 窗口全屏 窗口尺寸 示例1.窗口全屏UI/F ...
- QT中关于窗口全屏显示与退出全屏的实现
近期在学习QT时遇到了很多问题这也是其中一个,个人通过在各种书籍和网络上的查阅找到了一些关于这方面的答案,希望能给大家一些帮助. 首先,在QT中对于窗口显示常用的有这么几个方法可以调用: Qt全屏显示 ...
- UI: 窗口全屏, 窗口尺寸
窗口全屏 窗口尺寸 示例1.窗口全屏UI/FullScreen.xaml <Page x:Class="Windows10.UI.FullScreen" xmlns=&quo ...
- Android 窗口全屏
全屏getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); 取消全屏 getWindow().clearFlags(Wind ...
- windows系统dos窗口全屏
第一次进入博客园 2017年12月7日 之前使用dos窗口时都输入的是简短的指令,今天突然感觉小框看着不舒服,就找了一下度娘,在这里感谢万能的百度,一鞠躬. 1.win+r打开dos命令窗口 2.cm ...
- win32项目设置窗口全屏
创建窗口的时候设置样式:CreateWindow(,,WS_MAXIMIZE,……): 显示窗口的时候设置:ShowWindow(hWnd,SM_MAXIMIZE);
- Qt5.5中,使MainWindow初始为全屏
MainWindow w; w.showMaximized(); 实例化后,初始显示设置为最大格式即可!
- 在虚拟机中安装ubuntu16.04后不能全屏显示
一.在终端输入:xrandr 二.输入:xrandr -s 1920x1440 参考网站:https://blog.csdn.net/qq_33202928/article/details/75021 ...
- Unity3D在Windows的全屏和跨屏(双屏)方案
方案1 unity中2个摄像机场景显示在两个显示器屏幕上(一个窗口跨屏) 1.设置场景中的两个摄像机 摄像机1 摄像机2 2.设置发布的平台及分辨率 3.全屏运行游戏,没有标题栏还可以通过-popup ...
随机推荐
- IOCP I/O完成端口(了解)
IOCP(I/O Completion Port,I/O完成端口)是性能最好的一种I/O模型.它是应用程序使用线程池处理异步I/O请求的一种机制.在处理多个并发的异步I/O请求时,以往的模型都是在接收 ...
- MySQL查询重复出现次数最多的记录
MySQL查询的方法很多,下面为您介绍的MySQL查询语句用于实现查询重复出现次数最多的记录,对于学习MySQL查询有很好的帮助作用. 在有些应用里面,我们需要查询重复次数最多的一些记录,虽然这是一个 ...
- 找出现有Vector或ArrayList或数组中重复的元素&给现有Vector或ArrayList或数组去重
//直接上代码: public static void main(String[] args) { List<Integer> list = new Vector<Integer&g ...
- centos6.4yum搭建lamp环境
1.配置防火墙,开启80端口.3306端口vi /etc/sysconfig/iptables-A INPUT -m state --state NEW -m tcp -p tcp --dport 8 ...
- bootstrap tab切换如何让鼠标移动自动切换内容
bootstrap集成了很多功能,比如nav-tabs组件,可以将相似的内容集中在一个区块中展示.bootstrap tab切换默认是要点击才会切换的,如何实现鼠标移动就自动切换呢?如下图所示,光标移 ...
- Apache prefork 模块指令分析
问题背景: 在一台只有内存的vps上安装directadmin之后经常内存耗,经过查看之后发现Apache成了罪魁祸首急速消耗内存SWAP剩余空间都是0,最终导致内核开始大下杀手,把MySQL都杀了, ...
- 删除/var/lib/docker
FATA[0000] Get http:///var/run/docker.sock/v1.18/containers/json?all=1: dial unix /var/run/docker.so ...
- java笔记--使用SwingWoker类完成耗时操作
使用SwingWoker类完成耗时操作: 对于Swing中的耗时操作,通常要在一个新的线程中运行,以免程序"假死". 在java6.0中,可以用SwingWoker类来完成 Swi ...
- OpenSwitch操作系统成为Linux基金会官方项目
导读 非盈利机构Linux基金会为推进Linux和开源软件在企业和专业人士的发展,于今天宣布OpenSwitch项目成为Linux基金会官方项目之一. Linux基金会的常务董事Jim Zemlin表 ...
- SIFT+HOG+鲁棒统计+RANSAC
今天的计算机视觉课老师讲了不少内容,不过都是大概讲了下,我先记录下,细讲等以后再补充. SIFT特征: 尺度不变性:用不同参数的高斯函数作用于图像(相当于对图像进行模糊,得到不同尺度的图像),用得到的 ...