VC++获取屏幕大小第一篇 像素大小 GetSystemMetrics
2016-02-22 22:31
621 查看
《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
///article/1392163.html
呵呵,够多吧,不用记,要用的时候查下MSDN就好了。由MSDN可以知道传入SM_CXSCREEN和SM_CYSCREEN就得到屏幕的宽和高。详见代码:
[cpp] view
plain copy
// 获取屏幕大小 像素大小
// By MoreWindows( http://blog.csdn.net/MoreWindows )
#include <stdio.h>
#include <windows.h>
int main()
{
printf(" 获取屏幕大小 像素大小\n");
printf(" -- By MoreWindows( http://blog.csdn.net/MoreWindows ) --\n\n");
int nScreenWidth, nScreenHeight;
nScreenWidth = GetSystemMetrics(SM_CXSCREEN);
nScreenHeight = GetSystemMetrics(SM_CYSCREEN);
printf("屏幕大小(像素) 宽:%d 高:%d\n", nScreenWidth, nScreenHeight);
return 0;
}
运行结果如下:
![](http://img.my.csdn.net/uploads/201301/14/1358171490_6190.PNG)
后面二篇《VC++获取屏幕大小第二篇物理大小GetDeviceCaps上》和《VC++获取屏幕大小第三篇物理大小GetDeviceCaps下》将介绍使用GetDeviceCaps函数来获取屏幕的物理大小,欢迎继续浏览。
地址1:/article/1392162.html
地址2:/article/1392161.html
要获取屏幕的像素大小要使用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
///article/1392163.html
呵呵,够多吧,不用记,要用的时候查下MSDN就好了。由MSDN可以知道传入SM_CXSCREEN和SM_CYSCREEN就得到屏幕的宽和高。详见代码:
[cpp] view
plain copy
// 获取屏幕大小 像素大小
// By MoreWindows( http://blog.csdn.net/MoreWindows )
#include <stdio.h>
#include <windows.h>
int main()
{
printf(" 获取屏幕大小 像素大小\n");
printf(" -- By MoreWindows( http://blog.csdn.net/MoreWindows ) --\n\n");
int nScreenWidth, nScreenHeight;
nScreenWidth = GetSystemMetrics(SM_CXSCREEN);
nScreenHeight = GetSystemMetrics(SM_CYSCREEN);
printf("屏幕大小(像素) 宽:%d 高:%d\n", nScreenWidth, nScreenHeight);
return 0;
}
运行结果如下:
后面二篇《VC++获取屏幕大小第二篇物理大小GetDeviceCaps上》和《VC++获取屏幕大小第三篇物理大小GetDeviceCaps下》将介绍使用GetDeviceCaps函数来获取屏幕的物理大小,欢迎继续浏览。
地址1:/article/1392162.html
地址2:/article/1392161.html
相关文章推荐
- VC++ webbrowser函数使用范例
- HNOI 2013 bzoj 3143 游走
- c++拾遗-----循环和关系表达式
- HNOI 2013 bzoj 3141 旅行
- HNOI 2013 bzoj 3140 消毒
- C++的头文件<iomanip>
- C++ 将float数据归一化到[0,1]
- C语言编程基础知识
- C++面向对象编程<七>:堆栈、类模板、函数模板及其他补充
- Java c++通过des加解密
- OpenJudge百炼习题解答(C++)--题3858:和数
- 程序员面试题精选100题(15)-含有指针成员的类的拷贝[C/C++/C#]
- OpenJudge百炼习题解答(C++)--题4072:判断多个点是否在同一直线
- OpenJudge百炼习题解答(C++)--题4074:积水量
- OpenJudge百炼习题解答(C++)--题4045:与3和5无关的数
- 程序员面试题精选100题(08)-求1+2+...+n[C/C++/C#]
- OpenJudge百炼习题解答(C++)--题4040:买书问题
- Eclipse c/c++编译链接失败解决方法
- OpenJudge百炼习题解答(C++)--题4022:买房子
- OpenJudge百炼习题解答(C++)--题4010:2011