GetSystemMetrics

Posted 韵切

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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度量是虚拟屏幕的高度。

以上是关于GetSystemMetrics的主要内容,如果未能解决你的问题,请参考以下文章

GetSystemMetrics()函数的用法

GetSystemMetrics()函数的用法

GetSystemMetrics 以及其参数

GetSystemMetrics()函数的用法 转

GetSystemMetrics

GetSystemMetrics 以及其参数