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

分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!http://www.captainbed.net

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

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

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

// By MoreWindows( http://blog.csdn.net/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.csdn.net/morewindows/article/details/8502592

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

// 获取屏幕大小 物理大小 http://blog.csdn.net/morewindows/article/details/8502592
#include <stdio.h>
#include <windows.h>
int main()
{
	printf("    获取屏幕大小 物理大小\n");
	printf(" -- By MoreWindows( http://blog.csdn.net/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.csdn.net/morewindows/article/details/8610891

转载请标明出处,原文地址:http://blog.csdn.net/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.

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!http://www.captainbed.net

原文地址:https://www.cnblogs.com/heishanglaoyao/p/10488867.html

时间: 2024-10-13 19:16:47

VC++获取屏幕大小第二篇 物理大小GetDeviceCaps 上的相关文章

JS获取屏幕分辨率以及当前对象大小等

1 <script type="text/javascript"> 2 function getInfo(){ 3 var s = ""; 4 s += " 网页可见区域宽:"+ document.body.clientWidth+"\n"; 5 s += " 网页可见区域高:"+ document.body.clientHeight+"\n"; 6 s += "

[老老实实学WCF] 第二篇 配置WCF

原文:[老老实实学WCF] 第二篇 配置WCF 老老实实学WCF 第二篇 配置WCF 在上一篇中,我们在一个控制台应用程序中编写了一个简单的WCF服务并承载了它.先回顾一下服务端的代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.ServiceModel; using System.ServiceModel.Description; name

老老实实学习WCF[第二篇] 配置wcf

老老实实学WCF 第二篇 配置WCF 在上一篇中,我们在一个控制台应用程序中编写了一个简单的WCF服务并承载了它.先回顾一下服务端的代码: [csharp] view plaincopy using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.ServiceModel; using System.ServiceModel.Description; name

(转)[老老实实学WCF] 第二篇 配置WCF

第二篇 配置WCF 在上一篇中,我们在一个控制台应用程序中编写了一个简单的WCF服务并承载了它.先回顾一下服务端的代码: [csharp] view plaincopy using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.ServiceModel; using System.ServiceModel.Description; namespace Hel

cocos2d-x JS 获取屏幕大小或中点

以一张背景图为例: var HelloWorldLayer = cc.Layer.extend({ ctor:function () { this._super(); var bg = new cc.Sprite(res.HelloWorld_png); var size = cc.director.getWinSize();//获取屏幕大小 bg.x = size.width / 2; // x轴/2即为x轴中点 bg.y = size.height / 2; // y轴/2即为y轴中点 th

wift - 使用UIScreen类获取屏幕大小尺寸

UISreen类代表了屏幕,开发中一般用来获取屏幕相关的属性,例如获取屏幕的大小. 1 2 3 4 5 6 7 //获取屏幕大小 var screenBounds:CGRect = UIScreen.mainScreen().bounds println(screenBounds) //iPhone6输出:(0.0,0.0,375.0,667.0) //获取屏幕大小(不包括状态栏高度) var viewBounds:CGRect = UIScreen.mainScreen().applicati

java 获取屏幕大小

使用Java AWT类可以很方便取得屏幕分辨率及可用屏幕大小. 01.Dimension scrSize=Toolkit.getDefaultToolkit().getScreenSize();   此语句可取得屏幕实际大小.如屏幕分辨率是1024*768时,scrSize.width的值为1024,scrSize.height的值为768. 01.Insets scrInsets=Toolkit.getDefaultToolkit().getScreenInsets(GraphicsEnvir

获取屏幕及桌面大小

1. 获取屏幕大小 方法I:使用GetSystemMetrics() int nWidth = GetSystemMetrics(SM_CXSCREEN); int nHeight = GetSystemMetrics(SM_CYSCREEN); 得到1920*1080 例如:实现窗口居中显示 //屏幕大小 int cx = GetSystemMetrics(SM_CXSCREEN); int cy = GetSystemMetrics(SM_CYSCREEN); //窗口居中 CRect rt

Andorid 如何获取屏幕的大小

获取屏幕的大小 代码如下 DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); int screenWidth = dm.widthPixels; int screenHeigh = dm.heightPixels; 版权声明:本文为博主原创文章,未经博主允许不得转载.