VC++获取屏幕大小第二篇 物理大小GetDeviceCaps 上

C++学习(一三三)qt如何获取屏幕物理尺寸、分辨率、DPI QDesktopWidget *mydesk = QApplication::desktop(); mydesk-> widthMM(); mydesk->heightMM(); mydesk->physicalDpiX(); mydesk->physicalDpiY(); double Winches = (double)mydesk.width() / (double)mydesk.physicalDpiX(); double Hinches = (double)mydes. 阅读详情

    上一篇《VC++获取屏幕大小第一篇像素大小GetSystemMetrics》中介绍了使用GetSystemMetrics函数来获取屏幕的像素大小,本篇将介绍使用GetDeviceCaps函数来获取屏幕的物理大小。下面来看看GetDeviceCaps函数的用法:

函数功能:用于得到被定义的系统数据或者系统配置信息

函数原型:获取一些设备数据

// By MoreWindows( http://blog.youkuaiyun.com/MoreWindows )  

int GetDeviceCaps(

       HDChdc,     // handle to DC

       int nIndex   // index of capability

);

参数说明:

第一个参数表示设备环境的HDC句柄。

第二个参数与GetSystemMetrics函数的参数类似,有很多种取值,这里就不一一列举了,常用的有二个:

HORZSIZE

               Width, in millimeters, of the physical screen.

VERTSIZE

               Height, in millimeters, of the physical screen.

http://blog.youkuaiyun.com/morewindows/article/details/8502592 

 

由GetDeviceCaps函数的介绍可知获取屏幕的物理大小非常简单,下面给出完整的源代码:

// 获取屏幕大小 物理大小 http://blog.youkuaiyun.com/morewindows/article/details/8502592
#include <stdio.h>
#include <windows.h>
int main()
{
	printf("    获取屏幕大小 物理大小\n");        
	printf(" -- By MoreWindows( http://blog.youkuaiyun.com/MoreWindows ) --\n\n");   
	
	int nScreenWidth, nScreenHeight;
	HDC hdcScreen = GetDC(NULL);   //获取屏幕的HDC
	nScreenWidth = GetDeviceCaps(hdcScreen, HORZSIZE);
	nScreenHeight = GetDeviceCaps(hdcScreen, VERTSIZE);
	
	printf("屏幕大小(毫米) 宽:%d 高:%d\n", nScreenWidth, nScreenHeight);
	return 0;
}

程序运行结果如下所示:

 

 

 

后面一篇《VC++获取屏幕大小第三篇物理大小GetDeviceCaps下》将介绍获取屏幕的物理大小后计算屏幕对角线长度,再换算成英寸。这样可以方便大家查看自己电脑屏幕是多少英寸的,很多笔记本用户会有意外喔^_^。欢迎继续浏览。地址:http://blog.youkuaiyun.com/morewindows/article/details/8610891

 

转载请标明出处,原文地址:http://blog.youkuaiyun.com/morewindows/article/details/8502592

欢迎关注微博:http://weibo.com/MoreWindows


 

Note:  MSDN对GetDeviceCaps函数有说明:GetDeviceCaps reports info that the display driver provides. If the display driver declines to report any info, GetDeviceCaps calculates the info based on fixed calculations. If the display driver reports invalid info, GetDeviceCaps returns the invalid info. Also, if the display driver declines to report info, GetDeviceCaps might calculate incorrect info because it assumes either fixed DPI (96 DPI) or a fixed size (depending on the info that the display driver did and didn’t provide). Unfortunately, a display driver that is implemented to the Windows Display Driver Model (WDDM) (introduced in Windows Vista) causes GDI to not get the info, so GetDeviceCaps must always calculate the info.

 

VC 获取屏幕大小第二篇 物理大小GetDeviceCaps 上 阅读详情

相关推荐

VC++实战:屏幕信息枚举与全局鼠标钩子开发指南

在Windows桌面应用开发中,系统信息获取与全局事件监听是两项基础且关键的技术。其核心原理在于通过操作系统提供的原生API,如GetSystemMetrics、EnumDisplayMonitors等,精确枚举多显示器环境下的屏幕尺寸、分辨率及DPI等参数;同时利用SetWindowsHookEx等钩子机制,实现对鼠标移动、点击等全局输入事件的底层捕获。掌握这些技术对于开发需要精准屏幕适配的自动化测试工具、高精度屏幕取色器、以及全局快捷键管理等应用具有重要价值。本文以VC++与原生Win32 API为例,

掬水月在手,弄花香满衣 620

CDC::GetDeviceCaps()物理长度与屏幕像素间的转换

作用:读取DC的一些打印区域信息,主要是像素和英寸方面的数据.声明:GetDeviceCaps(int )使用例子://所有像素数int pagecx=dc.GetDeviceCaps(HORZRES);int pagecy=dc.GetDeviceCaps(VERTRES);//即每英寸点数short cxInch = dc.GetDeviceCaps(LOGPIXELSX);sho

gxj1680的专栏 1万+

Win32 GetDeviceCaps 函数学习

GetDeviceCaps 函数检索指定设备的设备特定信息;

bcbobo21cn的专栏 715

GetDeviceCaps查询设备上下文的属性

GetDeviceCaps用于按照整数索引查询设备上下文的属性,如帧缓冲区格式,色彩处理能力、分辨率、调色板、物理大小、页边距、alpha混合和渐进填充的能力、对ICM的支持,以及DDI特性和限制。

y3242710652的博客 1705

GetDeviceCaps

使用视频显示器设备环境时,可以使用GetDeviceCaps获取部分信息

VC++ 获得桌面(屏幕分辨率)大小

内容索引:VC/C++源码,其它分类,分辨率  VC++ 获得桌面大小,编译运行了一下才知道,原来是获得电脑屏幕的分辨率,或许对有些朋友有用处哦,发上来没事的时候研究一下哦。新手看看,高手跳过吧。

VC++获取屏幕大小第三篇 物理大小GetDeviceCaps 下

VC++获取屏幕大小第三篇 物理大小GetDeviceCaps 下

ffygvf的博客 394

从零开始:IBM V3700控制器更换与机器代码升级全流程指南

本文详细介绍了IBM V3700存储系统控制器更换与机器代码升级的全流程指南。从前期准备、硬件更换到版本同步,逐步解析如何应对503错误等常见问题,确保系统稳定运行。通过实战案例和优化建议,帮助工程师高效完成维护任务,提升存储系统可用性。

weixin_28365523的博客 312

VC++获取屏幕大小第一篇 像素大小GetSystemMetrics

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.youkuaiyun.com/jiangjunshow也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&

weixin_43417960的博客 372

苹果搜索广告ASA开户教程

阅读导航 一、创建账号 1、登录网站 2、填写账号主体信息 3、填写商家和发票信息 4、选择付款方式 二、上传审核材料 1、上传文件 2、请求审批 3、上传文件中的常见问题 一、创建账号 1、用Apple ID登录ASA网站 首先我们进入开户网址:https://app-ads.apple.com/ 如果已拥有Apple ID,直接登录即可,如果没有Apple ID,可以先按照步骤创建Apple ID,再返回登录。 注意,这里登录的Apple ID也有讲究: ① 如果是开发

testflight121的博客 2128

海思MIPI屏调试实战:从参数计算到点亮屏幕的完整指南

本文提供了一份海思平台MIPI屏幕调试的完整实战指南。文章以Hi3516DV300调试800x1280分辨率屏幕为例,详细讲解了从参数计算、配置文件修改到最终点亮屏幕的全流程,并分享了常见问题排查与进阶优化技巧,旨在帮助嵌入式开发者高效解决MIPI屏调试难题。

weixin_29190573的博客 736

VC++获取屏幕大小第一篇 像素大小 GetSystemMetrics

《VC++获取屏幕大小第一篇 像素大小 GetSystemMetrics》和《VC++获取屏幕大小第二篇物理大小GetDeviceCaps 上》和《VC++获取屏幕大小第三篇物理大小GetDeviceCaps下》这三篇文章主要讲解在VC++下获取屏幕大小。这个功能非常简单,也比较实用。       要获取屏幕的像素大小要使用GetSystemMetrics函数。下面就来看看这个函数的用

小米的修行之路 1530

LSTM 深度解析从原理推演到现代序列建模的演进

LSTM(Long Short-Term Memory,长短期记忆网络)是一种特殊的递归神经网络(RNN),它通过引入记忆单元(Cell State)来解决普通RNN在长序列数据处理中的梯度消失问题。LSTM可以在长时间的序列中捕捉依赖关系,是一种非常适合处理时间序列、自然语言处理、语音识别等任务的深度学习模型。在LSTM中,记忆单元(Cell State)是一个贯穿整个序列的数据通道,用于存储和传递关键信息。记忆单元在LSTM的时间步之间保持信息的持久性,可以看作是一个长期记忆的“容器”。

hello.reader 3万+

VC++ MFC打印预览实战:GDI架构设计与疑难问题解决

在桌面应用开发中,打印与预览功能是基础且关键的需求,其核心在于图形设备接口(GDI)的掌握与设备上下文(DC)的灵活运用。通过理解Windows图形系统的绘制原理,开发者可以实现渲染逻辑与输出设备的解耦,从而构建统一的文档渲染架构。这一技术的核心价值在于确保输出结果的精确控制与资源的高效利用,广泛应用于报表生成、数据分析、工程绘图等需要硬拷贝输出的场景。本文聚焦于VC++ MFC环境,深入探讨如何基于GDI设计高可用的打印预览模块,并针对字体度量不一致、坐标映射偏差等常见疑难问题提供实战解决方案,帮助开发者

weixin_34391445的博客 444

MIKE水动力笔记8_冷启动与热启动

在【MIKE水动力笔记5_建立水动力模型】中,讲到【Step 2 设置模型参数】中的【Initial Conditions】时,提到了冷启动与热启动。本博文就详细讲解何为冷启动、热启动,并通过一个案例具体分析两者不同。...

晏长街的博客 6568

K-Core, K-Shell & K-Crust傻傻分不清楚

K-Core(K-核)就是所有大于等于K的K-Shell的并集;K-Crust(K-皮)就是所有小于等于K的K-shell的并集。

欢迎订阅 -- 小源笔迹 2255

VC++ MFC系统托盘功能完整实现:从API原理到健壮封装

系统托盘是Windows桌面应用程序中实现后台常驻、前台隐身交互模式的核心组件,广泛应用于监控、通讯、下载管理等软件。其技术原理基于Windows Shell提供的标准API,通过NOTIFYICONDATA结构体定义图标属性,并调用Shell_NotifyIcon函数与系统任务栏进行通信。在VC++ MFC开发中,合理封装这一功能能显著提升代码复用性和程序健壮性。本文深入解析了托盘图标的消息响应机制、资源管理策略,并针对多显示器适配、高DPI缩放等实际工程挑战提供了解决方案。通过封装可复用的CSystem

weixin_30632883的博客 414

基于深度学习的图像修复系统,GAN图像修复,图像修复算法研究,并实现系统登录和注册,全网独发

近年来,深度学习已成为计算机视觉领域的研究热点,基于深度学习的图像修复技术弥补了传统修复方法长期存在的不足,显著提高了生成结果的质量。深度学习是指模仿人脑机制设计的具有深层结构的神经网络。深度学习作为一种表征学习,通过模仿人脑神经元之间的信息传递方式来学习输入数据的特征,并找到输入和输出数据之间的映射关系。通过在图像修复中应用深度学习技术,可以准确学习图像的语义信息,然后根据信息预测缺失的内容,大大克服了传统修复算法的不足,使结果更具逻辑性。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 8262
上一篇: VC++获取屏幕大小第一篇 像素大小GetSystemMetrics
下一篇: VC++获取屏幕大小第三篇 物理大小GetDeviceCaps 下
MoreWindows
MoreWindows 《白话经典算法》、《秒杀多线程》作者 《白话经典算法》、《秒杀多线程》作者 领域专家: 操作系统技术领域 领域专家: 操作系统技术领域
博客等级 码龄15年 2万+粉丝 157原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值