GetSystemMetrics 详解

GetSystemMetrics

  GetSystemMetrics ()
  用于得到被定义的系统数据或者系统配置信息.
  语法:
  int WINAPI GetSystemMetrics( __in int nIndex);
  下面是GetSystemMetrics函数参数nIndex的定义:
  SM_ARRANGE 标志用于说明系统如何安排最小化窗口..详细请参看下方备注.:
  根据显示器显示的不同,系统数据可能有所不同.
  该SM_ARRANGE设置指定系统如何安排最小化窗口,并包含一个起始位置和方向。起始位置可为下列值之一.
  
ValueMeaning
ARW_BOTTOMLEFT开始在左下角的屏幕(默认位置) 。
ARW_BOTTOMRIGHT开始在右下角的屏幕上。相当于ARW_STARTRIGHT.
ARW_HIDE在屏幕可见区域,隐藏并最小化窗口..
ARW_TOPLEFT从左上角的屏幕上。相当于ARV_STARTTOP.
ARW_TOPRIGHT开始在右上角的在屏幕上。相当于ARW_STARTTOP | SRW_STARTRIGHT 。

  方向的安排可以为下列值之一。
  
ValueMeaning
ARW_DOWN纵向排列,从上到下.
ARW_LEFT水平排列,从左到右.
ARW_RIGHT水平排列,从右到左.
ARW_UP纵向排列,从下到上.


   SM_CLEANBOOT    返回系统启动方式:
    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_CYHS+CROLL 水平滚动条的高度和水平滚动条上箭头的宽度
   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的值则鼠标左右键交换,否则没有。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值