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获取屏幕分辨率及大小相关(转)

    vc得到屏幕的当前分辨率方法: 1.Windows API调用 int width = GetSystemMetrics ( SM_CXSCREEN );  int height= GetSystem ...

  2. iosiPhone屏幕尺寸、分辨率及适配

    iosiPhone屏幕尺寸.分辨率及适配     1.iPhone尺寸规格 设备 iPhone 宽 Width 高 Height 对角线 Diagonal 逻辑分辨率(point) Scale Fac ...

  3. WP8.1:关于屏幕尺寸和分辨率的那些事儿

    目前市面上的Windows Phone设备越来越多,尺寸和分辨率也越来越多,特别是WP8.1时代的到来.做过wp开发的人都知道应用适配其实较安卓要简单太多了,其中有一个重要原因,就是微软号称所有WP设 ...

  4. iPhone屏幕尺寸、分辨率及适配

    转:http://blog.csdn.net/phunxm/article/details/42174937 目录(?)[+]   1.iPhone尺寸规格 设备 iPhone 宽 Width 高 H ...

  5. 【转】iPhone屏幕尺寸、分辨率及适配

    原文网址:http://blog.csdn.net/phunxm/article/details/42174937 1.iPhone尺寸规格 设备 iPhone 宽 Width 高 Height 对角 ...

  6. iPhone手机的屏幕尺寸、分辨率及适配

    1.iPhone尺寸规格 设备 iPhone 宽 Width 高 Height 对角线 Diagonal 逻辑分辨率(point) Scale Factor 设备分辨率(pixel) PPI 3GS ...

  7. Javascript&Jquery获取浏览器和屏幕各种高度宽度方法总结及运用

    <js篇> Javascript获取浏览器和屏幕各种高度宽度方法总结 document.body.clientWidth       //网页可见区域宽(body) document.bo ...

  8. 对屏幕的理解---分辨率,dpi,ppi,屏幕尺寸,像素 等

    1. 名词理解 屏幕尺寸(screen size) 屏幕尺寸(screen size),是屏幕的对角线长度,一般讲的大小单位都是英寸. DPI (dots per inch) dpi 是(英文Dots ...

  9. 屏幕尺寸,分辨率,像素,PPI之间到底什么关系?

    转载自:http://www.jianshu.com/p/c3387bcc4f6e 感谢博主的无私分享. 今天我给大家来讲讲这几个咱们经常打交道的词到底啥意思,以及他们之间到底有什么关系.这篇文章是我 ...

随机推荐

  1. python 子类继承父类属性及实例化方法

  2. python 使用自定义的类方法

  3. pl/sql基础知识—过程快速入门

    n  过程 过程用于执行特定的操作,当建立过程时,既可以指定输入参数(in),也可以指定输出参数(out),通过在过程中使用输入参数,可以将数据传递到执行部分:通过使用输出参数可以将执行部分的数据传递 ...

  4. 运行docker容器镜像2(指定容器启动时启动的脚本)

    docker中启动容器有以下两种情况. 第一种是通过 # docker run containerid 启动一个容器. 第二种是重新启动已经关闭的容器. # docker start containe ...

  5. linux之架构图和八台服务器

    (1) (2)

  6. working copy is not up-to-date

    解决方法:  在相应文件上,单击选择team,然后选择先更新,然后再提交.这样就好了.

  7. 2018-12-24-win10-uwp-求两个矩形相连的几何

    title author date CreateTime categories win10 uwp 求两个矩形相连的几何 lindexi 2018-12-24 20:51:49 +0800 2018- ...

  8. linux中$@,$*,$0,$$,$?参数的含义

    $# 是传给脚本的参数个数 $ 是脚本本身的名字 $ 是传递给该shell脚本的第一个参数 $ 是传递给该shell脚本的第二个参数 $@ 是传给脚本的所有参数的列表 $* 是以一个单字符串显示所有向 ...

  9. MySQL列出当前月的每一天

    因为工作的原因,要用MySQL列出当前月份每一天的日期,自己查了下网上资料都是列出最近一个月的日期的解决方案,自己根据查到的的方案,修改成了下面两个方案,在此记录下: 方案一: SELECT date ...

  10. laravel 5.5 登录验证码 captcha 引入

    https://blog.csdn.net/u013372487/article/details/79461730 前提: 开启Laravel 的用户认证功能 1.安装 Captcha 安装 Capt ...