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

要获取屏幕的像素大小要使用GetSystemMetrics函数。下面就来看看这个函数的用法:

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

函数原型:

// By MoreWindows( http://blog.csdn.net/MoreWindows )

int WINAPIGetSystemMetrics(

int nIndex

);

参数说明:

这个函数只有一个参数,不过这个参数可以取很多值。在WINUSER.H中有:

/*

* GetSystemMetrics() codes

*// MoreWindows( http://blog.csdn.net/MoreWindows )

*/

#define SM_CXSCREEN             0

#define SM_CYSCREEN             1

#define SM_CXVSCROLL            2

#define SM_CYHSCROLL            3

#define SM_CYCAPTION            4

#define SM_CXBORDER             5

#define SM_CYBORDER             6

#define SM_CXDLGFRAME           7

#define SM_CYDLGFRAME           8

#define SM_CYVTHUMB             9

#define SM_CXHTHUMB             10

#define SM_CXICON               11

#define SM_CYICON               12

#define SM_CXCURSOR             13

#define SM_CYCURSOR             14

#define SM_CYMENU               15

#define SM_CXFULLSCREEN         16

#define SM_CYFULLSCREEN         17

#define SM_CYKANJIWINDOW        18

#define SM_MOUSEPRESENT         19

#define SM_CYVSCROLL            20

#define SM_CXHSCROLL            21

#define SM_DEBUG                22

#define SM_SWAPBUTTON           23

#define SM_RESERVED1            24

#define SM_RESERVED2            25

#define SM_RESERVED3            26

#define SM_RESERVED4            27

#define SM_CXMIN                28

#define SM_CYMIN                29

#define SM_CXSIZE               30

#define SM_CYSIZE               31

#define SM_CXFRAME              32

#define SM_CYFRAME              33

#define SM_CXMINTRACK           34

#define SM_CYMINTRACK           35

#define SM_CXDOUBLECLK          36

#define SM_CYDOUBLECLK          37

#define SM_CXICONSPACING        38

#define SM_CYICONSPACING        39

#define SM_MENUDROPALIGNMENT    40

#define SM_PENWINDOWS           41

#define SM_DBCSENABLED          42

#define SM_CMOUSEBUTTONS        43

#if(WINVER >= 0x0400)

#define SM_CXFIXEDFRAME           SM_CXDLGFRAME  /* ;win40 name change */

#define SM_CYFIXEDFRAME           SM_CYDLGFRAME  /* ;win40 name change */

#define SM_CXSIZEFRAME            SM_CXFRAME     /* ;win40 name change */

#define SM_CYSIZEFRAME            SM_CYFRAME     /* ;win40 name change */

#define SM_SECURE               44

#define SM_CXEDGE               45

#define SM_CYEDGE               46

#define SM_CXMINSPACING         47

#define SM_CYMINSPACING         48

#define SM_CXSMICON             49

#define SM_CYSMICON             50

#define SM_CYSMCAPTION          51

#define SM_CXSMSIZE             52

#define SM_CYSMSIZE             53

#define SM_CXMENUSIZE           54

#define SM_CYMENUSIZE           55

#define SM_ARRANGE              56

#define SM_CXMINIMIZED          57

#define SM_CYMINIMIZED          58

#define SM_CXMAXTRACK           59

#define SM_CYMAXTRACK           60

#define SM_CXMAXIMIZED          61

#define SM_CYMAXIMIZED          62

#define SM_NETWORK              63

#define SM_CLEANBOOT            67

#define SM_CXDRAG               68

#define SM_CYDRAG               69

#endif /* WINVER >= 0x0400 */

#define SM_SHOWSOUNDS           70

#if(WINVER >= 0x0400)

#define SM_CXMENUCHECK          71   /* Use instead of GetMenuCheckMarkDimensions()! */

#define SM_CYMENUCHECK          72

#define SM_SLOWMACHINE          73

#define SM_MIDEASTENABLED       74

#endif /* WINVER >= 0x0400 */

#if (WINVER >= 0x0500) || (_WIN32_WINNT >= 0x0400)

#define SM_MOUSEWHEELPRESENT    75

#endif

#if(WINVER >= 0x0500)

#define SM_XVIRTUALSCREEN       76

#define SM_YVIRTUALSCREEN       77

#define SM_CXVIRTUALSCREEN      78

#define SM_CYVIRTUALSCREEN      79

#define SM_CMONITORS            80

#define SM_SAMEDISPLAYFORMAT    81

#endif /* WINVER >= 0x0500 */

#if (WINVER < 0x0500) && (!defined(_WIN32_WINNT) || (_WIN32_WINNT < 0x0400))

#define SM_CMETRICS             76

#else

#define SM_CMETRICS             83

#endif

//http://blog.csdn.net/morewindows/article/details/8502583

呵呵,够多吧,不用记,要用的时候查下MSDN就好了。由MSDN可以知道传入SM_CXSCREEN和SM_CYSCREEN就得到屏幕的宽和高。详见代码:

[cpp] view plain copy

 

  1. //   获取屏幕大小 像素大小
  2. // By MoreWindows( http://blog.csdn.net/MoreWindows )
  3. #include <stdio.h>
  4. #include <windows.h>
  5. int main()
  6. {
  7. printf("    获取屏幕大小 像素大小\n");
  8. printf(" -- By MoreWindows( http://blog.csdn.net/MoreWindows ) --\n\n");
  9. int nScreenWidth, nScreenHeight;
  10. nScreenWidth = GetSystemMetrics(SM_CXSCREEN);
  11. nScreenHeight = GetSystemMetrics(SM_CYSCREEN);
  12. printf("屏幕大小(像素) 宽:%d 高:%d\n", nScreenWidth, nScreenHeight);
  13. return 0;
  14. }

运行结果如下:

后面二篇《VC++获取屏幕大小第二篇物理大小GetDeviceCaps上》和《VC++获取屏幕大小第三篇物理大小GetDeviceCaps下》将介绍使用GetDeviceCaps函数来获取屏幕的物理大小,欢迎继续浏览。

地址1:http://blog.csdn.net/morewindows/article/details/8502592

地址2:http://blog.csdn.net/morewindows/article/details/8610891

转载于:https://www.cnblogs.com/yfz0/p/5833161.html

转:VC++获取屏幕大小第一篇 像素大小GetSystemMetrics相关推荐

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

    < VC++获取屏幕大小第一篇 像素大小 GetSystemMetrics >和< VC++获取屏幕大小第二篇物理大小GetDeviceCaps 上 >和< VC++获取 ...

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

    上一篇< VC++获取屏幕大小第一篇像素大小GetSystemMetrics >中介绍了使用GetSystemMetrics函数来获取屏幕的像素大小,本篇将介绍使用GetDeviceCap ...

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

    本篇文章(MoreWindows)将获取屏幕的物理大小后计算屏幕对角线长度并换算成英寸.这样可以方便大家查看自己电脑屏幕是多少英寸的.为了更方便大家使用,本文将提供电脑屏幕大小查看器下载(配源码)下载 ...

  4. VC获取屏幕dpi,win32绘图适配高dpi模式,windows屏幕缩放图像拉伸失真问题

    VC获取屏幕dpi,win32绘图适配高dpi模式 默认MFC支持高dpi模式 通过winapi提供接口获取屏幕dpi 使用==StretchBlt==代替==BitBlt==进行图像绘制 注意==M ...

  5. Visual C++——获取屏幕大小、窗口大小、对话框大小和位置、控件大小和位置

    解决方案 获取屏幕大小 //下边两个函数获取的是显示屏幕的大小,但不包括任务栏等区域int cx = GetSystemMetrics(SM_CXFULLSCREEN); int cy = GetSy ...

  6. {WP7/WP8·获取屏幕大小}

    获取屏幕大小 this.ScreenWidth = System.Windows.Application.Current.Host.Content.ActualWidth; this.ScreenHe ...

  7. php如何让图片铺满屏幕,如何解决js获取屏幕大小并且让图片自适应的方法

    在写h5页面的时候,经常会需要将图片自适应大小,一般都是用等比例的缩放,这就有个问题,当上传的图片不是一个规格时就会出现展示图片不完美. 为了解决这个问题,我们可以通过js去获取图片的大小,然后在根据 ...

  8. php自动适应屏幕大小,如何解决js获取屏幕大小并且让图片自适应的方法

    在写h5页面的时候,经常会需要将图片自适应大小,一般都是用等比例的缩放,这就有个问题,当上传的图片不是一个规格时就会出现展示图片不完美. 为了解决这个问题,我们可以通过js去获取图片的大小,然后在根据 ...

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

    UISreen类代表了屏幕,开发中一般用来获取屏幕相关的属性,例如获取屏幕的大小. 1 2 3 4 5 6 7 //获取屏幕大小 var screenBounds:CGRect = UIScreen. ...

  10. 获取屏幕大小、获取底部虚拟按键高度

    转载请注明出处:获取屏幕大小.获取底部虚拟按键高度_getaccuratescreendpi_Mr_Leixiansheng的博客-CSDN博客 /** * 获取底部虚拟键盘的高度 */ public ...

最新文章

  1. 人工智能70年:科幻和现实的交融
  2. 校招容易踩雷?这份“避雷针”指南拿走不谢
  3. 检验入参合法性有哪些_验证用户输入的参数合法性的shell脚本
  4. gradle编译打包过程 之 ProcessAndroidResources的源码分析
  5. 单点登录的原理与简单实现
  6. javascript中的常见事件
  7. Hystrix 线程池隔离与接口限流
  8. STM8学习笔记---串口printf函数的实现
  9. centos6.5下yum安装mysql5.5
  10. TreeSet-自然排序与比较器排序
  11. 使用数据分析工具的注意事项
  12. 如何优雅地编码文本中的位置信息?三种positioanl encoding方法简述
  13. Java开源框架 iBase4J 搭建笔记
  14. 树莓派4b安装Android TV 10
  15. 如何计算*0x402470(,%rax,8)
  16. Win10系统提示过期,三条命令帮你搞定
  17. 奇数值结点链表(C语言实现)
  18. linux源代码阅读组合vim tags taglist
  19. 二级城市邮政编码属性文件
  20. Windows7 GHOST Ultimate x86 V2.0万能预装版

热门文章

  1. 一样的Java,不一样的HDInsight大数据开发体验
  2. Maven 在eclipse中如何配置
  3. MongoDB基本管理命令 [转]
  4. uva 1045(二分图最大权匹配)
  5. 一些不错的理论[转载]
  6. Eclipse中打包maven项目-war包方式
  7. oracle脚本转mpp脚本,范本:使用expdp/impdp克隆生成一个新数据库
  8. java导入文件太大 处理速度慢_java – 处理大文件时IntelliJ非常慢
  9. linux安装oracle11g步骤_图解 Debian 10(Buster)安装步骤 | Linux 中国
  10. C# socket编程TcpClient与TcpListener UdpClient