vc得到屏幕的当前分辨率方法: 1.Windows API调用 int width = GetSystemMetrics ( SM_CXSCREEN );  int height= GetSystemMetrics ( SM_CYSCREEN );  如果想动态自适应分辨率的变化,处理WM_DISPLAYCHANGE消息.  2.获得分辨率 BOOL EnumDisplaySettings(  LPCTSTR lpszDeviceName, // display device  DWORD iModeNum, // graphics mode  LPDEVMODE lpDevMode // graphics mode settings  ); 
改变分辨率  LONG ChangeDisplaySettings(  LPDEVMODE lpDevMode, // graphics mode  DWORD dwflags // graphics mode options  );  3.用GetDeviceCaps 
int GetDeviceCaps(  HDC hdc, // handle to the device context  int nIndex // index of capability to query  ); 
4.用GetDeviceCaps HDC hdcScreen = GetDC( NULL );  int cx = GetDeviceCaps( hdcScreen, HORZRES );  int cy = GetDeviceCaps( hdcScreen, VERTRES );  DeleteObject( hdcScreen );  其中nIndex可以取:  HORZRES VERTRES 或  分别表示:  HORZRES :Width, in pixels, of the screen.  VERTRES :Height, in raster lines, of the screen. 
也就是设备的分辨率了 5.得到桌面客户区的大小  (1) 最简单,使用API  RECT rc;  SystemParametersInfo(SPI_GETWORKAREA, 0, (PVOID) &rc, 0);  str.Format("%d*%d",rc.right-rc.left,rc.bottom-rc.top); (2)间接计算得到:先用上面的3种方法得到这个屏幕的大小,再减去任务栏的大小(注意:要考虑任务栏是否隐藏的情况) int cx = GetSystemMetrics(SM_CXSCREEN);  int cy = GetSystemMetrics(SM_CYSCREEN);  或  HDC hdcScreen = GetDC( NULL );  int cx = GetDeviceCaps( hdcScreen, HORZRES );  int cy = GetDeviceCaps( hdcScreen, VERTRES );  DeleteObject( hdcScreen ); 
任务栏:  CWnd* pTaskWnd = FindWindow( _T("Shell_TrayWnd"), NULL );  if( pTaskWnd ) pTaskWnd->ShowWindow( FALSE );  任务栏是否隐藏:  LONG lStyle = GetWindowLong( pTaskWnd->GetSafeHwnd(), GWL_STYLE );  if( lStyle & WS_VISIBLE )  {  //可见  }  else  {  //隐藏  }

///////////////////////////////// VC获取屏幕大小 int with= GetSystemMetrics(SM_CXFULLSCREEN);

int heigh= GetSystemMetrics(SM_CYFULLSCREEN);

通过上边两个函数获取的是显示屏幕的大小,及不包括任务栏等区域。

int cx = GetSystemMetrics( SM_CXSCREEN );  int cy = GetSystemMetrics( SM_CYSCREEN );

这两个函数获取的是真正屏幕的大小。

用前两个函数获取的大小可能是1024*687 而用下边两个获取的就是1024*768 说明  返回与windows环境有关的信息  返回值  Long,取决于具体的常数索引  参数表  参数 类型及说明  nIndex Long,常数,指定欲获取的信息;如下表所示  nIndex常数设置  常数定义 取得信息  SM_ARRANGE 设置windows如何排列最小化窗口的一个标志。参考api32.txt中的ARW常数  SM_CLEANBOOT 指定启动模式。0=普通模式;1=带网络支持的安全模式  SM_CMETRICS 可用系统环境的数量  SM_CMOUSEBUTTON 鼠标按钮(按键)的数量。如没有鼠标,就为零  SM_CXBORDER, SM_CYBORDER 尺寸不可变边框的大小  SM_CXCURSOR, SM_CYCURSOR 标准指针大小  SM_CXDLGFRAME, SM_CYDLGFRAME 对话框边框的大小  SM_CXDOUBLECLK, SM_CYDOUBLECLK 双击区域的大小(参考注解)  SM_CXFRAME, SM_CYFRAME 尺寸可变边框的大小(在win95和nt 4.0中使用SM_C?FIXEDFRAME)  SM_CXFULLSCREEN, SM_CYFULLSCREEN 最大化窗口客户区的大小  SM_CXHSCROLL, SM_CYHSCROLL 水平滚动条上的箭头大小  SM_CXHTHUMB, SM_CYHTHUMB 滚动块在水平滚动条上的大小  SM_CXICON, SM_CYICON 标准图标的大小  SM_CXICONSPACING, SM_CYICONSPACING 桌面图标之间的间隔距离。在win95和nt 4.0中是指大图标的间距  SM_CXMAXIMIZED, SM_CYMAXIMIZED 最大化窗口的默认尺寸  SM_CXMAXTRACK, SM_CYMAXTRACK 改变窗口大小时,最大的轨迹宽度  SM_CXMENUCHECK, SM_CYMENUCHECK 菜单复选号位图的大小  SM_CXMENUSIZE, SM_CYMENUSIZE 菜单栏上的按钮大小  SM_CXMIN, SM_CYMIN 窗口的最小尺寸  SM_CXMINIMIZED, SM_CYMINIMIZED 最小化的窗口必须填充进去的一个矩形小于或等于SM_C?ICONSPACING  SM_CXMINTRACK, SM_CYMINTRACK 窗口的最小轨迹宽度  SM_CXSCREEN, SM_CYSCREEN 屏幕大小  SM_CXSIZE, SM_CYSIZE 标题栏位图的大小  SM_CXSIZEFRAME, SM_CYSIZEFRAME 具有WS_THICKFRAME样式的窗口的大小  SM_CXSMICON, SM_CYSMICON 小图标的大小  SM_CXSMSIZE, SM_CYSMSIZE 小标题按钮的大小  SM_CXVSCROLL, SM_CYVSCROLL 垂直滚动条中的箭头按钮的大小  SM_CYCAPTION 窗口标题的高度  SM_CYKANJIWINDOW Kanji窗口的大小(Height of Kanji window)  SM_CYMENU 菜单高度  SM_CYSMCAPTION 小标题的高度  SM_CYVTHUMB 垂直滚动条上滚动块的高度  SM_DBCSENABLED 如支持双字节则为TRUE  SM_DEBUG 如windows的调试版正在运行,则为TRUE  SM_MENUDropALIGNMENT 如弹出式菜单对齐菜单栏项目的左侧,则为零  SM_MIDEASTENABLED 允许了希伯来和阿拉伯语  SM_MOUSEPRESENT 如安装了鼠标则为TRUE  SM_MOUSEWHEELPRESENT 如安装了带轮鼠标则为TRUE;只适用于nt 4.0  SM_NETWORK 如安装了网络,则设置位0。其他位保留未用  SM_PENWINDOWS 如装载了支持笔窗口的DLL,则表示笔窗口的句柄  SM_SECURE 如安装了安全(保密)机制,则为TRUE  SM_SHOWSOUNDS 强制视觉提示播放声音  SM_SLOWMACHINE 系统速度太慢,但仍在运行中(System is too slow for effective use but is being run anyway)  SM_SWAPBUTTON 如左右鼠标键已经交换,则为TRUE '注意这里  注解  双击区域指定屏幕上一个特定的显示区域,只有在这个区域内连续进行两次鼠标单击,才有可能被当作双击事件处理  其他  常数 SM_ARRANGE, SM_CLEANBOOT, SM_CMETRICS, SM_C?MAXIMIZED, SM_C?MAXTRACK, SM_C?SIZEFRAME, SM_C?SMICON, SM_C?SMSIZE, SM_CYSMCAPTION,  SM_SECURE, SM_SHOWSOUNDS, and SM_SLOWMACHINE 未获 NT 3.51 及更早版本的支持

VC获取屏幕分辨率及大小相关(转)的更多相关文章

  1. VC获取屏幕分辨率大小

    //以下两个函数获取的是显示屏幕的大小,不包括任务栏等区域 int screenwidth=GetSystemMetrics(SM_CXFULLSCREEN); int screenheight=Ge ...

  2. 转:VC++获取屏幕大小第一篇 像素大小GetSystemMetrics

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

  3. Qt获取屏幕分辨率

    http://my.oschina.net/u/1255773/blog/159557 原 Qt获取屏幕分辨率 发表于1年前(2013-09-06 11:00)   阅读(546) | 评论(0) 3 ...

  4. Android 获取屏幕分辨率

    原文:Android 获取屏幕分辨率 得到一个屏幕尺寸的三种方法如下:        // 通过WindowManager获取        DisplayMetrics dm = new Displ ...

  5. 获取屏幕分辨率(C/C++)

    C/C++获取屏幕分辨率的方法 int main(int argc, char* argv[]) { // 需要添加头文件: // #include <Windows.h> system( ...

  6. 获取屏幕分辨率(C#)

    C#获取屏幕分辨率的方法 static void Main(string[] args) { // 控制台程序,需要添加程序集: // using System.Drawing; // using S ...

  7. C#获取屏幕分辨率率

    C#获取屏幕的分辨率   在C#中获取当前屏幕的分辨率的方法 1:rectangle类. 命名空间为:system.Drawing. system.Drawing.Rectangle rec=Scre ...

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

    <script type="text/javascript"> function getInfo(){ var s = ""; s += " ...

  9. android DisplayMetrics 获取屏幕分辨率

    Android 提供DisplayMetircs 类可以很方便的获取分辨率.下面介绍 DisplayMetics 类: Andorid.util 包下的DisplayMetrics 类提供了一种关于显 ...

随机推荐

  1. Python 让两个print()函数的输出打印在一行内

    1.两个连续的print()函数为什么在输出时内容会分行显示? 解:print()中有两个默认参数 sep 和 end,其中sep是代替分隔符,end是代替末尾的换行符,默认使用‘,’代替空格,且默认 ...

  2. js对象的属性:数据(data)属性和访问器(accessor)属性

    此文为转载,原文: 深入理解对象的数据属性与访问器属性 创建对象的方式有两种:第一种,通过new操作符后面跟Object构造函数,第二种,对象字面量方式.如下 var person = new Obj ...

  3. wordpress后台进去空白怎么办?

    最近博客换成了用wordpress程序搭建,内容和版面也重新设计.经常使用FTP工具,更改模板或者其他程序文件.由于对wordpress不太了解,竟然出现了wordpress后台进去空白的问题,而前台 ...

  4. OpenCV处理直方图

    直方图可以用来描述各种不同的事物,如物体的色彩分布.物体边缘梯度模板,以及表示目标位置的当前假设. 简单的说,直方图就是对数据进行统计,将统计值组织到一系列事先定义好的bin中.bin中的数值是从数据 ...

  5. Kylin启动时错误:Failed to find metadata store by url: kylin_metadata@hbase 解决办法

    一.问题背景 安装kylin后使用命令 $ kylin.sh start 后出现Failed to find metadata store by url: kylin_metadata@hbase的错 ...

  6. Ionic 自动创建应用的图标与启动画面

    你只需要一个目录和两张图片就可以搞定.图片可以是 .png 的,Photoshop的 .psd,或者Illustrator的 .ai,(例如)命名为icon.png和splash.png.把这些图片放 ...

  7. [python selenium] 操作方法整理

    个人笔记,摘抄自虫师python selenum,仅供个人参考 1.安装: pip install selenium 下载webdriver # webdriver 下载并放置在python主目录 · ...

  8. 跟厂长学PHP7内核(三):源码目录结构

    上篇文章我们已经介绍了源码分析工具的安装.配置以及调试方法,本文我们来讲述一下PHP源码的目录结构. 一.目录概览 以php-7.0.12为例,看过源码的同学们应该发现源码目录多达十多个,下面是每个目 ...

  9. JAVAEE——宜立方商城11:sso登录注册功能实现、通过token获得用户信息、Ajax跨域请求(jsonp)

    1. 学习计划 第十一天: 1.sso注册功能实现 2.sso登录功能实现 3.通过token获得用户信息 4.Ajax跨域请求(jsonp) 2. Sso系统工程搭建 需要创建一个sso服务工程,可 ...

  10. Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之部署master/node节点组件(四)

    0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 1.部署master组件 ...