GetSystemMetrics 系统指标或者配置设置

GetSystemMetrics是一个计算机函数,该函数只有一个参数,称之为「索引」,这个索引有75个标识符,通过设置不同的标识符就可以获取系统分辨率、窗体显示区域的宽度和高度、滚动条的宽度和高度。

The GetSystemMetrics function retrieves various system metrics (widths and heights of display elements) and system configuration settings. Alldimensions retrieved byGetSystemMetrics are inpixels.

GetSystemMetrics函数检索系统各种的指标(显示元素的宽度和高度)以及系统配置设置。所有被GetSystemMetrics 检索出尺寸都是以像素为单位的。

int GetSystemMetrics(
     int
 nIndex   // system metric or configuration setting(系统指标或者配置设置)
);

Paramenters:

nIndex:

      [in] Specifies the system metric or configuration setting to retrieve. All SM_CX* values are widths. All SM_CY* values are heights. The following values are defined.

参数:

nIndex:

     [in] 区分检索的系统指标或者配置设置。所有以SM_CX开头的值是指宽度。所有以SM_CY开头的值是指告诉。 下面是被定义的值。

int i;
i = GetSystemMetrics(SM_CLEANBOOT);//启动方式 0
i = GetSystemMetrics(SM_CMONITORS);//显示器数目 1
i = GetSystemMetrics(SM_CMOUSEBUTTONS);//鼠标上按键的数目 3
i = GetSystemMetrics(SM_CXBORDER);//窗口边框的宽度,3D外观下与SM_CXEDGE值相同 1
i = GetSystemMetrics(SM_CXCURSOR);//光标的宽度 32
i = GetSystemMetrics(SM_CXDLGFRAME);//与SM_CXFIXEDFRAME相同 3
i = GetSystemMetrics(SM_CXDOUBLECLK);//鼠标在某个矩形内连击两次被认为是双击,该矩形的宽度 4
i = GetSystemMetrics(SM_CXDRAG);//鼠标在某个矩形内单击移动被认为是拖曳,该矩形的宽度 4
i = GetSystemMetrics(SM_CXEDGE);//SM_CXBORDER在3D外观下的值 2
i = GetSystemMetrics(SM_CXFIXEDFRAME);//具有title bar和固定border的窗体的border的宽度 3
i = GetSystemMetrics(SM_CXFOCUSBORDER);//DrawFocusRect画出的矩形的左右边框的 1
i = GetSystemMetrics(SM_CXFRAME);//与SM_CXSIZEFRAME相同 4
i = GetSystemMetrics(SM_CXFULLSCREEN);//客户区(工作区)的宽度 1280
i = GetSystemMetrics(SM_CXHSCROLL);//水平滚动条上箭头位图的宽度 17
i = GetSystemMetrics(SM_CXHTHUMB);//水平滚动条滑块的宽度 17
i = GetSystemMetrics(SM_CXICON);//图标的默认宽度,LoadIcon只能载入该宽度和SM_CYICON指定高度的icon 32
i = GetSystemMetrics(SM_CXICONSPACING);//icon view中各icon的所占矩形的宽度,大于等于SM_CXICON 75
i = GetSystemMetrics(SM_CXMAXIMIZED);//最大化顶级窗口的宽度 1288
i = GetSystemMetrics(SM_CXMAXTRACK);//一个具有title bar和sizable的窗口所能达到的最大宽度 1292
i = GetSystemMetrics(SM_CXMENUCHECK);//菜单上位图的宽度 13
i = GetSystemMetrics(SM_CXMENUSIZE);//菜单条按钮的宽度,例如多文档中ChildFrame(最大化时)右上角的关闭按钮 19
i = GetSystemMetrics(SM_CXMIN);//窗体的最小宽度 123
i = GetSystemMetrics(SM_CXMINIMIZED);//最小化窗体的宽度 160
i = GetSystemMetrics(SM_CXMINSPACING);//各个最小化窗体所占的矩形的宽度,大于等于SM_MINIMIZED 160
i = GetSystemMetrics(SM_CXMINTRACK);//窗口能拖拽的最小宽度 123
i = GetSystemMetrics(SM_CXSCREEN);//屏幕宽度 1280
i = GetSystemMetrics(SM_CXSIZE);//title bar上按钮的宽度 25
i = GetSystemMetrics(SM_CXSIZEFRAME);//sizable窗体的横向border的宽度 4
i = GetSystemMetrics(SM_CXSMICON);//推荐的小图标(如title bar上的和icon view中的)的宽度 16
i = GetSystemMetrics(SM_CXSMSIZE);//caption中图标的宽度 17
i = GetSystemMetrics(SM_CXVIRTUALSCREEN);//virutal screen的宽度 1280
i = GetSystemMetrics(SM_CXVSCROLL);//垂直滚动条的宽度 17
i = GetSystemMetrics(SM_CYBORDER);// 1返回以像素值为单位的Windows窗口边框的宽度和高度,如果Windows的为3D形态,则等同于SM_CXEDGE参数
i = GetSystemMetrics(SM_CYCAPTION);// 26以像素计算的普通窗口标题的高度
i = GetSystemMetrics(SM_CYCURSOR);// 32返回以像素值为单位的标准光标的宽度和高度
i = GetSystemMetrics(SM_CYDLGFRAME);// 3等同与SM_CXFIXEDFRAME and SM_CYFIXEDFRAME
i = GetSystemMetrics(SM_CYDOUBLECLK);// 4以像素值为单位的双击有效的矩形区域
i = GetSystemMetrics(SM_CYDRAG);// 4
i = GetSystemMetrics(SM_CYEDGE);// 2以像素值为单位的3D边框的宽度和高度
i = GetSystemMetrics(SM_CYFIXEDFRAME);// 3围绕具有标题但无法改变尺寸的窗口(通常是一些对话框)的边框的厚度
i = GetSystemMetrics(SM_CYFOCUSBORDER);// 1
i = GetSystemMetrics(SM_CYFRAME);// 4 等同于SM_CXSIZEFRAME and SM_CYSIZEFRAME
i = GetSystemMetrics(SM_CYFULLSCREEN);// 744 全屏幕窗口的窗口区域的宽度和高度
i = GetSystemMetrics(SM_CYHSCROLL);// 17 水平滚动条的高度和水平滚动条上箭头的宽度
i = GetSystemMetrics(SM_CYICON);// 32系统缺省的图标的高度和宽度(一般为32*32)
i = GetSystemMetrics(SM_CYICONSPACING);// 75以大图标方式查看Item时图标之间的间距,这个距离总是大于等于
i = GetSystemMetrics(SM_CYMAXIMIZED);// 778处于顶层的最大化窗口的缺省尺寸
i = GetSystemMetrics(SM_CYMAXTRACK);// 812具有可改变尺寸边框和标题栏的窗口的缺省最大尺寸,如果窗口大于这个尺寸,窗口是不可移动的

i = GetSystemMetrics(SM_CYMENU);// 20以像素计算的单个菜单条的高度
i = GetSystemMetrics(SM_CYMENUCHECK);// 13以像素为单位计算的菜单选中标记位图的尺寸
i = GetSystemMetrics(SM_CYMIN);// 34=4+4+26窗口所能达到的最小尺寸
i = GetSystemMetrics(SM_CYMINIMIZED);// 31正常的最小化窗口的尺寸
i = GetSystemMetrics(SM_CYMINSPACING);// 31
i = GetSystemMetrics(SM_CYMINTRACK);// 34最小跟踪距离,当使用者拖动窗口移动距离小于这个值,窗口不会移动
i = GetSystemMetrics(SM_CYSCREEN);// 800以像素为单位计算的屏幕尺寸。
i = GetSystemMetrics(SM_CYSIZE);// 25以像素计算的标题栏按钮的尺寸
i = GetSystemMetrics(SM_CYSIZEFRAME);// 4围绕可改变大小的窗口的边框的厚度
i = GetSystemMetrics(SM_CYSMCAPTION);// 18以像素计算的窗口小标题栏的高度
i = GetSystemMetrics(SM_CYSMICON);// 16像素计算的小图标的尺寸,小图标一般出现在窗口标题栏上
i = GetSystemMetrics(SM_CYSMSIZE);// 17
i = GetSystemMetrics(SM_CYVIRTUALSCREEN);// 800
i = GetSystemMetrics(SM_CYVSCROLL);// 17以像素计算的垂直滚动条的宽度和垂直滚动条上箭头的高度
i = GetSystemMetrics(SM_CYVTHUMB);// 17以像素计算的垂直滚动条中滚动块的高度

0 正常启动

1 安全模式启动

2 网络安全模式启动

SM_CMOUSEBUTTONS 返回值为系统支持的鼠标键数,返回0,则系统中没有安装鼠标。

SM_CXBORDER,

SM_CYBORDER 返回以像素值为单位的Windows窗口边框的宽度和高度,如果Windows的为3D形态,则等同于SM_CXEDGE参数

SM_CXCURSOR,

SM_CYCURSOR 返回以像素值为单位的标准光标的宽度和高度

SM_CXDLGFRAME,

SM_CYDLGFRAME 等同与SM_CXFIXEDFRAME and SM_CYFIXEDFRAME

SM_CXDOUBLECLK,

SM_CYDOUBLECLK 以像素值为单位的双击有效的矩形区域

SM_CXEDGE,SM_CYEDGE 以像素值为单位的3D边框的宽度和高度

SM_CXFIXEDFRAME,

SM_CYFIXEDFRAME 围绕具有标题但无法改变尺寸的窗口(通常是一些对话框)的边框的厚度

SM_CXFRAME,SM_CYFRAME 等同于SM_CXSIZEFRAME and SM_CYSIZEFRAME

SM_CXFULLSCREEN,

SM_CYFULLSCREEN 全屏幕窗口的窗口区域的宽度和高度

SM_CXHSCROLL,

SM_CYHSCROLL 水平滚动条的高度和水平滚动条上箭头的宽度

SM_CXHTHUMB 以像素为单位的水平滚动条上的滑动块宽度

SM_CXICON,SM_CYICON 系统缺省的图标的高度和宽度(一般为32*32)

SM_CXICONSPACING,

SM_CYICONSPACING 以大图标方式查看Item时图标之间的间距,这个距离总是大于等于

SM_CXICON and SM_CYICON.

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_CXMINTRACK,

SM_CYMINTRACK 最小跟踪距离,当使用者拖动窗口移动距离小于这个值,窗口不会移动。

SM_CXSCREEN,

SM_CYSCREEN 以像素为单位计算的屏幕尺寸。

SM_CXSIZE,SM_CYSIZE 以像素计算的标题栏按钮的尺寸

SM_CXSIZEFRAME,

SM_CYSIZEFRAME 围绕可改变大小的窗口的边框的厚度

SM_CXSMICON,

SM_CYSMICON 以像素计算的小图标的尺寸,小图标一般出现在窗口标题栏上。

SM_CXVSCROLL,

SM_CYVSCROLL 以像素计算的垂直滚动条的宽度和垂直滚动条上箭头的高度

SM_CYCAPTION 以像素计算的普通窗口标题的高度

SM_CYMENU 以像素计算的单个菜单条的高度

SM_CYSMCAPTION 以像素计算的窗口小标题栏的高度

SM_CYVTHUMB 以像素计算的垂直滚动条中滚动块的高度

SM_DBCSENABLED 如果为TRUE或不为0的值表明系统安装了双字节版本的USER.EXE,为FALSE或0则不是。

SM_DEBUG 如果为TRUE或不为0的值表明系统安装了debug版本的USER.EXE,为FALSE或0则不是。

SM_MENUDROPALIGNMENT 如果为TRUE或不为0的值下拉菜单是右对齐的否则是左对齐的。

SM_MOUSEPRESENT 如果为TRUE或不为0的值则安装了鼠标,否则没有安装。

SM_MOUSEWHEELPRESENT 如果为TRUE或不为0的值则安装了滚轮鼠标,否则没有安装。(Windows NT only)

SM_SWAPBUTTON 如果为TRUE或不为0的值则鼠标左右键交换,否则没有。

`GetSystemMetrics`是一个Windows API函数,用于检索系统度量信息的指定系统度量值或配置设置。 函数原型为: ```c++ int WINAPI GetSystemMetrics( int nIndex ); ``` 其中,`nIndex`参数指定要检索的系统度量值或配置设置。常用的参数及其说明如下: | 参数 | 说明 | | ------------------ | ------------------------------------------------------------ | | `SM_CXSCREEN` | 屏幕的宽度(以像素为单位) | | `SM_CYSCREEN` | 屏幕的高度(以像素为单位) | | `SM_CXVSCROLL` | 垂直滚动条的宽度 | | `SM_CYHSCROLL` | 水平滚动条的高度 | | `SM_CYCAPTION` | 标题栏的高度 | | `SM_CXBORDER` | 窗口边框的宽度 | | `SM_CYBORDER` | 窗口边框的高度 | | `SM_CXDLGFRAME` | 对话框边框的宽度 | | `SM_CYDLGFRAME` | 对话框边框的高度 | | `SM_CYVTHUMB` | 纵向滚动条拇指按钮的高度 | | `SM_CXHTHUMB` | 横向滚动条拇指按钮的宽度 | | `SM_CXICON` | 图标的宽度 | | `SM_CYICON` | 图标的高度 | | `SM_CXCURSOR` | 光标的宽度 | | `SM_CYCURSOR` | 光标的高度 | | `SM_CYMENU` | 菜单栏的高度 | | `SM_CXFULLSCREEN` | 全屏模式下工作区的宽度 | | `SM_CYFULLSCREEN` | 全屏模式下工作区的高度 | | `SM_CYKANJIWINDOW` | 指示日语Kanji窗口的最小高度。该值始终为0。 | | `SM_MOUSEPRESENT` | 非零值表示安装了鼠标,零值表示未安装鼠标 | | `SM_CYVSCROLL` | 纵向滚动条的高度 | | `SM_CXHSCROLL` | 横向滚动条的宽度 | | `SM_DEBUG` | 非零值表示调试版本的Windows,零值表示零售版本的Windows | | `SM_SWAPBUTTON` | 非零值表示鼠标的左右键被交换,零值表示鼠标左右键未被交换 | | `SM_CXMIN` | 窗口最小化时的宽度 | | `SM_CYMIN` | 窗口最小化时的高度 | | `SM_CXSIZE` | 窗口大小的宽度 | | `SM_CYSIZE` | 窗口大小的高度 | | `SM_CXSIZEFRAME` | 窗口边框的宽度,包括调整边框 | | `SM_CYSIZEFRAME` | 窗口边框的高度,包括调整边框 | | `SM_CXMINTRACK` | 窗口最小化时的最小宽度 | | `SM_CYMINTRACK` | 窗口最小化时的最小高度 | | `SM_CXDOUBLECLK` | 双击水平拖动条的宽度 | | `SM_CYDOUBLECLK` | 双击垂直拖动条的高度 | | `SM_CXICONSPACING` | 水平图标之间的距离 | | `SM_CYICONSPACING` | 垂直图标之间的距离 | | `SM_MENUDROPALIGNMENT` | 非零值表示菜单栏可以向左对齐,零值表示菜单栏向左对齐。 | | `SM_PENWINDOWS` | 非零值表示Windows运行在Pen计算机上,零值表示Windows未运行在Pen计算机上 | | `SM_DBCSENABLED` | 非零值表示双字节字符集(DBCS)输入可以使用,零值表示DBCS输入不可用 | | `SM_CMOUSEBUTTONS` | 鼠标按钮的数量 | | `SM_SECURE` | 非零值表示计算机处于安全模式下,零值表示计算机未处于安全模式下 | | `SM_CXEDGE` | 3D边缘宽度 | | `SM_CYEDGE` | 3D边缘高度 | | `SM_CXSMICON` | 小图标的宽度 | | `SM_CYSMICON` | 小图标的高度 | | `SM_CYSMCAPTION` | 带有三维边缘效果的小型标题栏的高度 | | `SM_CXSMSIZE` | 小型窗口大小的宽度 | | `SM_CYSMSIZE` | 小型窗口大小的高度 | | `SM_CXMENUSIZE` | 菜单栏大小的宽度 | | `SM_CYMENUSIZE` | 菜单栏大小的高度 | | `SM_ARRANGE` | 非零值表示Windows已经安排了最小化窗口的位置,零值表示Windows尚未安排最小化窗口的位置 | | `SM_CXMINIMIZED` | 窗口最小化时的宽度,单位为像素 | | `SM_CYMINIMIZED` | 窗口最小化时的高度,单位为像素 | | `SM_CXMAXTRACK` | 窗口最大化时的最大宽度 | | `SM_CYMAXTRACK` | 窗口最大化时的最大高度 | | `SM_CXMAXIMIZED` | 窗口最大化时的宽度,单位为像素 | | `SM_CYMAXIMIZED` | 窗口最大化时的高度,单位为像素 | | `SM_NETWORK` | 非零值表示Windows运行在网络上,零值表示Windows未运行在网络上 | | `SM_CLEANBOOT` | 非零值表示Windows已经启动,并且启动过程中没有加载设备驱动程序,零值表示Windows未以清洁启动方式启动 | | `SM_CXDRAG` | 拖动操作时拖动图标的宽度 | | `SM_CYDRAG` | 拖动操作时拖动图标的高度 | | `SM_SHOWSOUNDS` | 非零值表示Windows启动声音,零值表示Windows未启动声音 | | `SM_CXMENUCHECK` | 菜单栏中菜单项旁边的选中框的宽度 | | `SM_CYMENUCHECK` | 菜单栏中菜单项旁边的选中框的高度 | | `SM_SLOWMACHINE` | 非零值表示Windows运行在较慢的计算机上,零值表示Windows未运行在较慢的计算机上 | | `SM_MIDEASTENABLED` | 非零值表示Windows启用了中东语言支持,零值表示Windows未启用中东语言支持 | `GetSystemMetrics`函数的返回值根据所请求的系统度量值或配置设置而异。通常,返回值是度量值或配置设置的整数值。但是,如果请求的系统度量值或配置设置无法检索,则返回0。 例如,如果您想要检查Windows计算机是否正在远程会话(锁定屏幕),可以使用以下代码: ```c++ BOOL isLocked = GetSystemMetrics(SM_REMOTESESSION); if (isLocked) { // 计算机处于锁定状态 } else { // 计算机未被锁定 } ``` 在上面的代码中,`GetSystemMetrics`函数将返回非零值表示计算机处于锁定状态,否则返回零表示计算机未被锁定。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值