GetSystemMetrics功能可以检索各种系统指标和系统配置设置。
系统度量是Windows显示元素的尺寸(宽度和高度)。由GetSystemMetrics检索的所有维度均为像素。
int GetSystemMetrics(
INT 【参数nIndex】 | //系统度量或配置设置进行检索 |
); |
参数
【参数nIndex】
指定要检索的系统度量或配置设置。所有SM_CX *值都是宽度。所有SM_CY *值都是高。定义了以下值:
值 | 含义 |
SM_ARRANGE | 指定系统如何布置最小化窗口的标志。有关最小化窗口的详细信息,请参阅以下备注部分。 |
SM_CLEANBOOT | 指定系统启动方式的值: 0正常启动 1故障安全启动 2网络启动故障安全 故障安全引导(也称为SafeBoot)绕过用户的启动文件。 |
SM_CMOUSEBUTTONS | 鼠标上的按钮数量,如果没有安装鼠标,则为零。 |
SM_CXBORDER, SM_CYBORDER | 窗口边框的宽度和高度(以像素为单位)。这相当于具有3-D外观的Windows的SM_CXEDGE值。 |
SM_CXCURSOR, SM_CYCURSOR | 光标的宽度和高度(以像素为单位)。这些是当前显示驱动程序支持的光标尺寸。系统无法创建其他大小的游标。 |
SM_CXDLGFRAME, SM_CYDLGFRAME | 与SM_CXFIXEDFRAME和SM_CYFIXEDFRAME相同。 |
SM_CXDOUBLECLK, SM_CYDOUBLECLK | 在双击顺序中第一次点击的位置周围的矩形的宽度和高度(以像素为单位)。第二次点击必须发生在此矩形内,系统才能双击两次点击。(两次点击也必须在指定的时间内发生。) |
SM_CXDRAG, SM_CYDRAG | 以拖动点为中心的矩形的宽度和高度(以像素为单位),以允许在拖动操作开始之前鼠标指针的有限移动。这允许用户轻松地单击并释放鼠标按钮,而无需无意中启动拖动操作。 |
SM_CXEDGE, SM_CYEDGE | 3-D边框的尺寸(以像素为单位)。这些是SM_CXBORDER和SM_CYBORDER的3-D对应物。 |
SM_CXFIXEDFRAME, SM_CYFIXEDFRAME | 在具有标题但不大的窗口的周边周围的框架的厚度(以像素为单位)。SM_CXFIXEDFRAME是水平边框的宽度,SM_CYFIXEDFRAME是垂直边框的高度。 与SM_CXDLGFRAME和SM_CYDLGFRAME相同。 |
SM_CXFRAME, SM_CYFRAME | 与SM_CXSIZEFRAME和SM_CYSIZEFRAME相同。 |
SM_CXFULLSCREEN, SM_CYFULLSCREEN | 全屏窗口的客户区域的宽度和高度。要使屏幕部分的坐标不被托盘遮蔽,请使用SPI_GETWORKAREA值调用SystemParametersInfo函数。 |
SM_CXHSCROLL, SM_CYHSCROLL | 水平滚动条上箭头位图的宽度(以像素为单位);和水平滚动条的高度(以像素为单位)。 |
SM_CXHTHUMB | 水平滚动条中的缩略图宽度(以像素为单位)。 |
SM_CXICON, SM_CYICON | 图标的默认宽度和高度(以像素为单位)。这些值通常为32x32,但可能因安装的显示硬件而异。 LoadIcon功能只能加载这些维度的图标。 |
SM_CXICONSPACING, SM_CYICONSPACING | 在大图标视图中的项目的网格单元的尺寸(以像素为单位)。安排时,每个项目都适合这种尺寸的矩形。这些值始终大于或等于SM_CXICON和SM_CYICON。 |
SM_CXMAXIMIZED, SM_CYMAXIMIZED | 最大化顶级窗口的默认维度(以像素为单位)。 |
SM_CXMAXTRACK, SM_CYMAXTRACK | 具有标题和大小边框的窗口的默认最大尺寸(以像素为单位)。用户无法将窗框拖动到大于这些尺寸的尺寸。窗口可以通过处理WM_GETMINMAXINFO消息来覆盖这些值。 |
SM_CXMENUCHECK, SM_CYMENUCHECK | 默认菜单复选标记位图的尺寸(以像素为单位)。 |
SM_CXMENUSIZE, SM_CYMENUSIZE | 菜单栏按钮的尺寸(以像素为单位),例如多个文档(MIDI)儿童关闭。 |
SM_CXMIN, SM_CYMIN | 窗口的最小宽度和高度(以像素为单位)。 |
SM_CXMINIMIZED, SM_CYMINIMIZED | 正常最小化窗口的尺寸(以像素为单位)。 |
SM_CXMINSPACING SM_CYMINSPACING | 用于最小化窗口的网格单元的尺寸(以像素为单位)。每个最小化的窗口在布置时适合这种尺寸的矩形。这些值始终大于或等于SM_CXMINIMIZED和SM_CYMINIMIZED。 |
SM_CXMINTRACK, SM_CYMINTRACK | 窗口的最小跟踪宽度和高度(以像素为单位)。用户无法将窗框拖动到小于这些尺寸的尺寸。窗口可以通过处理WM_GETMINMAXINFO消息来覆盖这些值。 |
SM_CXSCREEN, SM_CYSCREEN | 屏幕的宽度和高度(以像素为单位)。 |
SM_CXSIZE, SM_CYSIZE | 窗口标题或标题栏中按钮的宽度和高度(以像素为单位)。 |
SM_CXSIZEFRAME, SM_CYSIZEFRAME | 围绕可以调整大小的窗口周边的尺寸边框的厚度(以像素为单位)。SM_CXSIZEFRAME是水平边框的宽度,SM_CYSIZEFRAME是垂直边框的高度。 与SM_CXFRAME和SM_CYFRAME相同。 |
SM_CXSMICON, SM_CYSMICON | 小图标的推荐尺寸(以像素为单位)。小图标通常出现在窗口标题和小图标视图中。 |
SM_CXSMSIZE SM_CYSMSIZE | 小字幕按钮的尺寸(以像素为单位)。 |
SM_CXVSCROLL, SM_CYVSCROLL | 垂直滚动条的宽度(以像素为单位);并且垂直滚动条上的箭头位图的高度(以像素为单位)。 |
SM_CYCAPTION | 正常字幕区域的高度(以像素为单位)。 |
SM_CYKANJIWINDOW | 对于Windows的双字节字符集版本,屏幕底部的汉字窗口的高度(以像素为单位)。 |
SM_CYMENU | 单行菜单栏的高度(以像素为单位)。 |
SM_CYSMCAPTION | 高度(以像素为单位)的小标题。 |
SM_CYVTHUMB | 垂直滚动条中拇指框的高度(以像素为单位)。 |
SM_DBCSENABLED | 如果安装了USER.EXE的双字节字符集(DBCS)版本,则为TRUE或非零;假,否则为零。 |
SM_DEBUG | 如果安装了USER.EXE的调试版本,则为TRUE或非零;假,否则为零。 |
SM_MENUDROPALIGNMENT | 如果下拉菜单相对于相应的菜单栏项目右对齐,则为TRUE或非零; FALSE,如果它们是左对齐的,则为零。 |
SM_MIDEASTENABLED | 如果系统启用了希伯来语/阿拉伯语,则为TRUE。 |
SM_MOUSEPRESENT | TRUE or nonzero if a mouse is installed; FALSE, or zero, otherwise. |
SM_MOUSEWHEELPRESENT | 仅Windows NT:如果安装了带轮的鼠标,则为TRUE或非零;假,否则为零。 |
SM_NETWORK | 如果存在网络,则设置最低有效位;否则,它被清除。其他位保留供将来使用。 |
SM_PENWINDOWS | 如果安装了Microsoft Windows for Pen计算扩展,则为TRUE或非零;零或假,否则。 |
SM_SECURE | 如果存在安全性,则为TRUE,否则为FALSE。 |
SM_SHOWSOUNDS | 如果用户要求应用程序在视觉上呈现信息的情况下为真或非零,否则情况将仅以可听见的形式呈现信息;假,否则为零。 |
SM_SLOWMACHINE | 如果计算机具有低端(慢)处理器,则为TRUE,否则为FALSE。 |
SM_SWAPBUTTON | 如果左右鼠标按钮的含义被交换,则为TRUE或非零;假,否则为零。 |
返回值
如果函数成功,则返回值是所请求的系统度量或配置设置。
如果函数失败,返回值为零。GetLastError不提供扩展错误信息。
备注
系统指标可能因显示而异。
SM_ARRANGE设置指定系统如何排列最小化的窗口,并由起始位置和方向组成。起始位置可以是以下值之一。
值 | 含义 |
ARW_BOTTOMLEFT | 从屏幕左下角开始(默认位置)。 |
ARW_BOTTOMRIGHT | 从屏幕的右下角开始。相当于ARW_STARTRIGHT。 |
ARW_HIDE | 通过将屏幕的可见区域移开来隐藏最小化的窗口。 |
ARW_TOPLEFT | 从屏幕的左上角开始。相当于ARV_STARTTOP。 |
ARW_TOPRIGHT | 从屏幕的右上角开始。相当于ARW_STARTTOP | SRW_STARTRIGHT。 |
要排列的方向可以是以下值之一。
值 | 含义 |
ARW_DOWN | 垂直排列,从上到下。 |
ARW_LEFT | 水平排列,从左到右。 |
ARW_RIGHT | 水平安排,从右到左。 |
ARW_UP | 垂直排列,从底部到顶部。 |