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

医学图像分割实战:基于TransUNet训练自己的眼底硬渗出物数据集(附完整代码)

本文详细介绍了基于TransUNet的眼底硬渗出物分割实战指南,涵盖数据预处理、模型调优、训练策略及性能优化等关键环节。通过代码复现和实验对比,展示了TransUNet在医学图像分割中的优势,为糖尿病视网膜病变的早期诊断提供技术支持。

weixin_42524708的博客 362

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

大麦网抢票软件工具开发系列(一)

前言《大麦网》都知道吧,就是那个被网友声称“大麦网你卖啥了?”票务平台。近期有听到朋友说《大麦网》的票很难抢,基本上都是说:“哎哟喂,被挤爆啦,请稍后重试!”,也不知道《大麦网》...

架构文摘 1万+

数据资产入表——解读100页数据资产入表解读与分析【附全文阅读】

本文档《数据资产入表:解读与分析》面向企业财务、数据管理、法务合规及高管等核心岗位,系统解析数据资产入表全流程。以"政策-实操-价值"为主线,首先解读入表政策要求,明确会计处理规范;其次详细拆解数据盘点、治理、确权、评估等实操步骤,提供行业案例参考;最后分析入表难点及后续运营策略,为企业提供从政策理解到落地执行的一站式解决方案。

cdfunlove的博客 392

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

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

小米的修行之路 1530

[Dify实战] OA 公文排版助手:自动格式化、编号、生成摘要-带配套资源

摘要: Dify 公文排版助手通过自动化解决公文处理中的格式混乱、编号错漏等问题。支持标题层级自动编号、摘要生成、要素补全等功能,输出标准化Markdown格式。核心流程包括输入原文、智能识别、自动排版与要素输出,适用于通知、纪要等场景。实施需统一模板规则,规范输入格式,并通过试跑优化纠错率与处理效率。关键价值在于减少人工返工,提升排版一致性,未来可对接OA系统实现全流程自动化。

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 472

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

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

weixin_34391445的博客 444

【系统分析师】高分论文:论基于构件的软件开发(气象灾害影响评估系统)

本文以某手机气象灾害影响评估系统为例,探讨了基于构件技术的软件开发实践。通过分析开发中常见的功能模块重复问题,提出建立企业构件库、针对性选择构件和加强构件管理的解决方案。项目实施中成功复用登录模块等通用构件,并针对气象数据转换需求开发新构件,最终在8个月内高质量完成系统建设。文章总结了构件开发的三个关键点:构件库建设是基础、构件选择需精准、构件管理要规范。同时指出需注意全新需求开发、性能优化等问题,建议通过培训提升团队对构件的理解力。该案例证明构件技术能有效缩短周期、降低成本,为企业积累可复用的技术资产。

数据知道的博客 4253

【数据集处理】中国地面气候资料日值数据集(V3.0)(含MATLAB全代码)

简介数据集数据处理

WW、forever的博客 1万+

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

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

weixin_30632883的博客 414

Unity中使用TCP和UDP传输摄像头视频的实践

本文探讨了在Unity中通过TCP和UDP协议传输摄像头视频的实现方法。TCP通过自定义消息帧保证数据完整性但效率较低,UDP传输速度快但可能丢帧。文章提供了Python和Unity的代码示例,分析了两种协议的适用场景:TCP适合要求数据完整性的应用,UDP则适合追求实时性的场景。最终选择取决于具体需求,并需要注意线程安全与同步机制。

m0_74337424的博客 145
上一篇: 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、付费专栏及课程。

余额充值