GetSystemMetrics

GetSystemMetrics函数

含义
SM_ARRANGE 56

指定系统如何布置最小化窗口的标志。有关详细信息,请参阅本主题中的备注部分。

SM_CLEANBOOT 67

指定系统启动方式的值:

  • 0正常启动
  • 1故障安全启动
  • 2网络启动故障安全

故障安全启动(也称为SafeBoot,安全模式或干净启动)绕过用户启动文件。

SM_CMONITORS 80

台式机上的显示器数量。有关详细信息,请参阅本主题中的备注部分。

SM_CMOUSEBUTTONS 43

鼠标的按钮数量,如果没有安装鼠标,则为零。

SM_CONVERTIBLESLATEMODE 0x2003

反映笔记本电脑或平板电脑模式的状态,Slate Mode为0,否则为非零。当该系统度量改变时,

系统通过WM_SETTINGCHANGE通过LPARAM中的“ConvertibleSlateMode” 发送广播消息。

请注意,此系统指标不适用于台式机。在这种情况下,请使用GetAutoRotationState

SM_CXBORDER 5

窗口边框的宽度,以像素为单位。这相当于具有3-D外观的Windows的SM_CXEDGE值。

SM_CXCURSOR 13

光标的宽度,以像素为单位。系统无法创建其他大小的游标。

SM_CXDLGFRAME 7

该值与SM_CXFIXEDFRAME相同。

SM_CXDOUBLECLK 36

在双击序列中第一次点击的位置周围的矩形的宽度,以像素为单位。

第二次点击必须发生在由SM_CXDOUBLECLK和SM_CYDOUBLECLK定义的矩形内,

系统会考虑双击两次。两次点击也必须在指定的时间内进行。

要设置双击矩形的宽度,调用 SystemParametersInfo与SPI_SETDOUBLECLKWIDTH。

SM_CXDRAG 68

在拖动操作开始之前,鼠标指针可以移动的鼠标下方点的任意一侧的像素数。这允许用户轻松地单击并释放鼠标按钮,

而无需无意中启动拖动操作。如果该值为负,则从鼠标下拉点的左侧减去该值,并将其添加到右侧。

SM_CXEDGE 45

3-D边框的宽度,以像素为单位。该度量是SM_CXBORDER的3-D对应物。

SM_CXFIXEDFRAME 7

围绕具有字幕但不大的窗口周边的框架的厚度(以像素为单位)。

SM_CXFIXEDFRAME是水平边框的高度,SM_CYFIXEDFRAME是垂直边框的宽度。

此值与SM_CXDLGFRAME相同。

SM_CXFOCUSBORDER 83

DrawFocusRect绘制的焦点矩形的左边缘和右边缘的宽度。此值为像素。

Windows 2000:  不支持此值。

SM_CXFRAME 32

该值与SM_CXSIZEFRAME相同。

SM_CXFULLSCREEN 16

主显示器上全屏窗口的客户区域的宽度,以像素为单位。要获取未被系统任务栏或应用程序桌面工具栏遮挡的屏幕部分的坐标,

请使用SPI_GETWORKAREA值调用 SystemParametersInfo函数。

SM_CXHSCROLL 21

水平滚动条上箭头位图的宽度,以像素为单位。

SM_CXHTHUMB 10

水平滚动条中的拇指框的宽度,以像素为单位。

SM_CXICON 11

图标的默认宽度,以像素为单位。该 LoadIcon功能可以加载只与SM_CXICON尺寸和SM_CYICON指定的图标。

SM_CXICONSPACING 38

大图标视图中项目的网格单元格的宽度,以像素为单位。SM_CYICONSPACING安排时,

每个项目都适合大小为SM_CXICONSPACING的矩形。该值始终大于或等于SM_CXICON。

SM_CXMAXIMIZED 61

主显示屏上最大化顶级窗口的默认宽度(以像素为单位)。

SM_CXMAXTRACK 59

具有标题和大小边框的窗口的默认最大宽度(以像素为单位)。此度量指的是整个桌面。

用户无法将窗框拖动到大于这些尺寸的尺寸。窗口可以通过处理WM_GETMINMAXINFO消息来覆盖此值 。

SM_CXMENUCHECK 71

默认菜单的宽度复选标记位图,以像素为单位。

SM_CXMENUSIZE 54

菜单栏按钮的宽度,例如在多个文档界面中使用的子窗口关闭按钮,以像素为单位。

SM_CXMIN 28

窗口的最小宽度(以像素为单位)。

SM_CXMINIMIZED 57

最小化窗口的宽度,以像素为单位。

SM_CXMINSPACING 47

用于最小化窗口的网格单元格的宽度,以像素为单位。每个最小化的窗口在布置时适合这种尺寸的矩形。

该值始终大于或等于SM_CXMINIMIZED。

SM_CXMINTRACK 34

窗口的最小跟踪宽度,以像素为单位。用户无法将窗框拖动到小于这些尺寸的尺寸。

窗口可以通过处理WM_GETMINMAXINFO消息来覆盖此值 。

SM_CXPADDEDBORDER 92

标题窗口的边框填充量,以像素为单位。

Windows XP / 2000:  不支持此值。

SM_CXSCREEN 0

主显示屏的屏幕宽度,以像素为单位。这是通过调用GetDeviceCaps获得的相同的值 ,

如下所示:GetDeviceCaps( hdcPrimaryMonitor, HORZRES)

SM_CXSIZE 30

窗口标题或标题栏中按钮的宽度,以像素为单位。

SM_CXSIZEFRAME 32

围绕窗口周边的尺寸边框的厚度可以调整大小,以像素为单位。

SM_CXSIZEFRAME是水平边框的宽度,SM_CYSIZEFRAME是垂直边框的高度。

该值与SM_CXFRAME相同。

SM_CXSMICON 49

推荐的小图标宽度,以像素为单位。小图标通常出现在窗口标题和小图标视图中。

SM_CXSMSIZE 52

小字幕按钮的宽度,以像素为单位。

SM_CXVIRTUALSCREEN 78

虚拟屏幕的宽度,以像素为单位。虚拟屏幕是所有显示器的边界矩形。SM_XVIRTUALSCREEN度量是虚拟屏幕左侧的坐标。

SM_CXVSCROLL 2

垂直滚动条的宽度,以像素为单位。

SM_CYBORDER 6

窗口边框的高度,以像素为单位。这相当于具有3-D外观的Windows的SM_CYEDGE值。

SM_CYCAPTION 4

字幕区域的高度,以像素为单位。

SM_CYCURSOR 14

光标的高度,以像素为单位。系统无法创建其他大小的游标。

SM_CYDLGFRAME 8

该值与SM_CYFIXEDFRAME相同。

SM_CYDOUBLECLK 37

在双击顺序中第一次点击的位置周围的矩形的高度,以像素为单位。

第二次点击必须发生在由SM_CXDOUBLECLK和SM_CYDOUBLECLK定义的矩形内,系统会考虑双击两次。

两次点击也必须在指定的时间内进行。

要设置双击矩形的高度,调用 SystemParametersInfo与SPI_SETDOUBLECLKHEIGHT。

SM_CYDRAG 69

在拖动操作开始之前,鼠标指针可以移动的鼠标下移点上方和下方的像素数。

这允许用户轻松地单击并释放鼠标按钮,而无需无意中启动拖动操作。如果该值为负值,则从鼠标下方点的上方减去并在其下方添加。

SM_CYEDGE 46

3-D边框的高度,以像素为单位。这是SM_CYBORDER的3-D对应物。

SM_CYFIXEDFRAME 8

围绕具有字幕但不大的窗口周边的框架的厚度(以像素为单位)。

SM_CXFIXEDFRAME是水平边框的高度,SM_CYFIXEDFRAME是垂直边框的宽度。

该值与SM_CYDLGFRAME相同。

SM_CYFOCUSBORDER 84

DrawFocusRect绘制的焦点矩形的顶部和底部边缘的高度 。此值为像素。

Windows 2000:  不支持此值。

SM_CYFRAME 33

该值与SM_CYSIZEFRAME相同。

SM_CYFULLSCREEN 17

主显示器上全屏窗口的客户区域的高度(以像素为单位)。要获取屏幕部分的坐标不会被系统任务栏或应用程序桌面工具栏遮挡,

请使用SPI_GETWORKAREA值调用 SystemParametersInfo函数。

SM_CYHSCROLL 3

水平滚动条的高度,以像素为单位。

SM_CYICON 12

图标的默认高度(以像素为单位)。该 LoadIcon功能可以加载只能与尺寸SM_CXICON和SM_CYICON图标。

SM_CYICONSPACING 39

大图标视图中项目的网格单元格的高度(以像素为单位)。SM_CYICONSPACING安排时,

每个项目都适合大小为SM_CXICONSPACING的矩形。该值始终大于或等于SM_CYICON。

SM_CYKANJIWINDOW 18

对于系统的双字节字符集版本,这是屏幕底部的汉字窗口的高度(以像素为单位)。

SM_CYMAXIMIZED 62

主显示屏上最大化顶级窗口的默认高度(以像素为单位)。

SM_CYMAXTRACK 60

具有标题和大小边框的窗口的默认最大高度(以像素为单位)。

此度量指的是整个桌面。用户无法将窗框拖动到大于这些尺寸的尺寸。窗口可以通过处理WM_GETMINMAXINFO消息来覆盖此值 。

SM_CYMENU 15

单行菜单栏的高度(以像素为单位)。

SM_CYMENUCHECK 72

默认菜单复选标记位图的高度,以像素为单位。

SM_CYMENUSIZE 55

菜单栏按钮的高度,例如在多个文档界面中使用的子窗口关闭按钮,以像素为单位。

SM_CYMIN 29

窗口的最小高度(以像素为单位)。

SM_CYMINIMIZED 58

最小化窗口的高度,以像素为单位。

SM_CYMINSPACING 48

用于最小化窗口的网格单元格的高度,以像素为单位。每个最小化的窗口在布置时适合这种尺寸的矩形。该值始终大于或等于SM_CYMINIMIZED。

SM_CYMINTRACK 35

窗口的最小跟踪高度(以像素为单位)。用户无法将窗框拖动到小于这些尺寸的尺寸。窗口可以通过处理WM_GETMINMAXINFO消息来覆盖此值 。

SM_CYSCREEN 1

主显示器屏幕的高度以像素为单位。这是通过调用GetDeviceCaps获得的相同的值 ,如下所示:GetDeviceCaps( hdcPrimaryMonitor, VERTRES)

SM_CYSIZE 31

窗口标题或标题栏中按钮的高度,以像素为单位。

SM_CYSIZEFRAME 33

围绕窗口周边的尺寸边框的厚度可以调整大小,以像素为单位。SM_CXSIZEFRAME是水平边框的宽度,SM_CYSIZEFRAME是垂直边框的高度。

该值与SM_CYFRAME相同。

SM_CYSMCAPTION 51

小字幕的高度,以像素为单位。

SM_CYSMICON 50

推荐的小图标的高度,以像素为单位。小图标通常出现在窗口标题和小图标视图中。

SM_CYSMSIZE 53

小字幕按钮的高度,以像素为单位。

SM_CYVIRTUALSCREEN 79

虚拟屏幕的高度,以像素为单位。虚拟屏幕是所有显示器的边界矩形。SM_YVIRTUALSCREEN指标是虚拟屏幕顶部的坐标。

SM_CYVSCROLL 20

垂直滚动条上箭头位图的高度(以像素为单位)。

SM_CYVTHUMB 9

垂直滚动条中的拇指框的高度,以像素为单位。

SM_DBCSENABLED 42

非零,如果User32.dll支持DBCS; 否则为0。

SM_DEBUG 22

如果安装了User.exe的调试版本,则为非零; 否则为0。

SM_DIGITIZER 94

非零,如果当前的操作系统是Windows 7或Windows Server 2008 R2,并且平板电脑输入服务启动; 否则为0.

返回值是指定设备支持的数字转换器输入类型的位掩码。有关详细信息,请参阅注释。

Windows Server 2008,Windows Vista和Windows XP / 2000:  不支持此值。

SM_IMMENABLED 82

如果启用了输入法管理器/输入法编辑器功能,则为非零; 否则为0。

SM_IMMENABLED指示系统是否准备好在Unicode应用程序上使用基于Unicode的IME。要确保语言相关的IME工作,

请检查SM_DBCSENABLED和系统ANSI代码页。否则可能无法正确执行ANSI到Unicode转换,或者某些组件(如字体或注册表设置)可能不存在。

SM_MAXIMUMTOUCHES 95

非零,如果系统中有数字化仪; 否则为0。

SM_MAXIMUMTOUCHES返回系统中每个数字化仪支持的最大联系人数的最大数量。如果系统只有单触摸数字转换器,

则返回值为1.如果系统具有多点触摸数字转换器,则返回值是硬件可提供的同时接触数。

Windows Server 2008,Windows Vista和Windows XP / 2000:  不支持此值。

SM_MEDIACENTER 87

非零,如果当前的操作系统是Windows XP,Media Center Edition,如果没有,则为0。

SM_MENUDROPALIGNMENT 40

如果下拉菜单与相应的菜单栏项目对齐,则为非零; 如果菜单左对齐,则为0。

SM_MIDEASTENABLED 74

如果系统启用了希伯来语和阿拉伯语,则为非零,否则为0。

SM_MOUSEPRESENT 19

如果安装了鼠标,则为非零; 否则为0.该值很少为零,因为对虚拟鼠标的支持,并且由于某些系统检测端口的存在而不是存在鼠标。

SM_MOUSEHORIZALALWHEELPRESENT 91

如果安装了带水平滚轮的鼠标,则为非零; 否则0。

SM_MOUSEWHEELPRESENT 75

如果安装了带有垂直滚轮的鼠标,则为非零; 否则0。

SM_NETWORK 63

如果存在网络,则设置最低有效位; 否则,它被清除。其他位保留供将来使用。

SM_PENWINDOWS 41

如果安装了Microsoft Windows for Pen计算扩展名,则为非零; 否则为零。

SM_REMOTECONTROL 0x2001

终端服务环境中使用此系统度量来确定当前的终端服务器会话是否被远程控制。如果当前会话是远程控制的,其值不为零; 否则为0。

您可以使用终端服务管理工具,如终端服务管理器(tsadmin.msc)和shadow.exe来控制远程会话。

当会话被远程控制时,另一个用户可以查看该会话的内容并可能与之进行交互。

SM_REMOTESESSION 0x1000

该系统度量用于终端服务环境。如果调用进程与终端服务客户端会话相关联,则返回值不为零。如果调用进程与终端服务控制台会话相关联,则返回值为0。

Windows Server 2003和Windows XP:  控制台会话不一定是物理控制台。有关更多信息,请参阅WTSGetActiveConsoleSessionId

SM_SAMEDISPLAYFORMAT 81

如果所有显示器显示器具有相同的颜色格式,则为零,否则为0.两个显示器可以具有相同的位深度,

但具有不同的颜色格式。例如,红色,绿色和蓝色像素可以用不同数量的位进行编码,或者这些位可以位于像素颜色值的不同位置。

SM_SECURE 44

该系统度量应该被忽略; 它总是返回0。

SM_SERVERR2 89

如果系统是Windows Server 2003 R2,则编号; 否则为0。

SM_SHOWSOUNDS 70

非零,如果用户要求应用程序在视觉上呈现信息,否则将以可听见的形式呈现信息; 否则为0。

SM_SHUTTINGDOWN 0x2000

非零,如果当前会话正在关闭; 否则为0。

Windows 2000:  不支持此值。

SM_SLOWMACHINE 73

非零,如果计算机有一个低端(慢)处理器; 否则为0。

SM_STARTER 88

非零,如果当前操作系统是Windows 7入门版,Windows Vista Starter或Windows XP Starter Edition; 否则为0。

SM_SWAPBUTTON 23

如果左右鼠标按钮的含义被交换,则为非零; 否则为0。

SM_SYSTEMDOCKED 0x2004

反映对接模式的状态,Undocked Mode为0,否则为非零。当该系统度量改变时.

系统通过WM_SETTINGCHANGE通过LPARAM中的“SystemDockMode” 发送广播消息。

 

SM_TABLETPC 86

如果当前操作系统是Windows XP Tablet PC版,或者当前操作系统是Windows Vista或Windows 7,

并且平板电脑输入服务启动,则为零; 否则为0. SM_DIGITIZER设置指示运行Windows 7或

Windows Server 2008 R2的设备支持的数字化仪输入的类型。有关详细信息,请参阅注释。

SM_XVIRTUALSCREEN 76

虚拟屏幕左侧的坐标。虚拟屏幕是所有显示器的边界矩形。SM_CXVIRTUALSCREEN度量是虚拟屏幕的宽度。

SM_YVIRTUALSCREEN 77

虚拟屏幕顶部的坐标。虚拟屏幕是所有显示器的边界矩形。SM_CYVIRTUALSCREEN度量是虚拟屏幕的高度。

转载于:https://www.cnblogs.com/yunqie/p/6614024.html

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

余额充值