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度量是虚拟屏幕的高度。