捐助郴维网
感谢您对郴维网的支持,你的支持将是郴维网持续发展的动力!
二维码
×
当前位置:郴维网 >API档案 > 正文
21 2017.05

GetSystemMetrics

点击次数:1301 更新时间:2017-5-21 20:11:58  【打印此页

函数功能:

GetSystemMetrics 函数返回 Windows 中各种图形项(图标、鼠标指针、标题栏和滚动条等)的尺寸信息。

在不同的显卡和驱动中,这些尺寸是不一样的,为了在程序中做到与设备无关的图形输出,GetSystemMetrics 是一个很重要的函数。

注意:GetSystemMetrics 函数获取的所有尺寸均以像素为单位。


API 函数原型:

注释:_In_ 说明该参数是输入的,_opt_ 说明该参数是可选参数。

int WINAPI GetSystemMetrics(
  _In_  int nIndex
);



参数解析:

参数

含义

nIndex

该参数是一个索引值,函数返回该索引值对应的配置信息


nIndex 参数是一个索引值,可以是以下列表中任意一个:

注意:

  • 所有 SM_CX* 开头表示宽(横向),SM_CY* 开头表示高(纵向)
  • 如果是返回布尔类型的数据,用非 0 值表示 TRUE,用 0 表示 FALSE


注释:括号内代表宏的值

索引值

含义

SM_ARRANGE(56)

指定系统如何排列最小化窗口

SM_CLEANBOOT(67)

指定系统如何启动:
返回 0 代表 Normal boot(正常开机)
返回 1 代表 Fail-safe boot(故障安全引导)
返回 2 代表 Fail-safe with network boot(故障安全引导,带网络)
注:故障安全引导(也称为 SafeBoot,SafeMode,或者 CleanBoot)其实就是我们平时所说的“安全模式”,该模式会绕过用户启动文件

SM_CMONITORS(80)

有多少个显示器

SM_CMOUSEBUTTONS(43)

鼠标上有多少个按钮,如果为 0 则没有安装鼠标

SM_CONVERTIBLESLATEMODE(0x2003)

笔记本电脑或平板模式,0 为平板模式,非 0 表示其他模式

SM_CXBORDER(5)

1. 一个窗口边框的宽
2. 如果 Windows 为 3D 形态,则等同于 SM_CXEDGE 参数

SM_CXCURSOR(13)

1. 光标的宽
2. 系统不能创建其他尺寸的光标

SM_CXDLGFRAME(7)

这个值与 SM_CXFIXEDFRAME 是相同的

SM_CXDOUBLECLK(36)

双击有效的矩形区域的宽度

SM_CXDRAG(68)

鼠标在某个矩形内单击移动被认为是拖拽

SM_CXEDGE(45)

3-D 边框的宽度

SM_CXFIXEDFRAME(7)

1. 具有标题栏但不可以调整大小的窗口边框的宽度
2. 这个值等同于 SM_CXDLGFRAME

SM_CXFOCUSBORDER(83)

1. DrawFocusRect 函数画出的矩形左右边框的宽度
2. Windows 2000:不支持

SM_CXFRAME(32)

这个值等同于 SM_CXSIZEFRAME

SM_CXFULLSCREEN(16)

客户区在全屏模式下的宽度

SM_CXHSCROLL(21)

水平滚动条上箭头位图的宽度

SM_CXHTHUMB(10)

水平滚动条滑块的宽度

SM_CXICON(11)

1. 图标的默认宽度
2. LoadIcon 函数只能载入该宽度和 SM_CYICON 指定高度的图标

SM_CXICONSPACING(38)

一个网格单元的大图标视图中项的宽度

SM_CXMAXIMIZED(61)

最大化顶级窗口的宽度

SM_CXMAXTRACK(59)

一个具有标题栏及可调整大小的窗口所能达到的最大宽度

SM_CXMENUCHECK(71)

菜单上位图的宽度

SM_CXMENUSIZE(54)

菜单条按钮的宽度

SM_CXMIN(28)

窗口的最小宽度

SM_CXMINIMIZED(57)

最小化窗口的宽度

SM_CXMINSPACING(47)

各个最小化窗体所占的矩形的宽度,该值需要大于等于 SM_CXMINIMIZED

SM_CXMINTRACK(34)

1. 窗口支持拖拽的最小宽度
2. 当窗口小于此值时不允许拖拽
3. 可以通过处理 WM_GETMINMAXINFO 消息来覆盖此值

SM_CXPADDEDBORDER(92)

1. 带标题栏窗口边框的填充量
2. Windows XP/2000:不支持

SM_CXSCREEN(0)

1. 主显示屏的屏幕宽度
2. 该值与 GetDeviceCaps(hdcPrimaryMonitor, HORZRES) 结果一致

SM_CXSIZE(30)

标题栏上按钮的宽度

SM_CXSIZEFRAME(32)

可调整大小的窗口的边框的宽度

SM_CXSMICON(49)

推荐的小图标的宽度(一般出现在窗口标题栏)

SM_CXSMSIZE(52)

小标题按钮的宽度

SM_CXVIRTUALSCREEN(78)

虚拟屏幕的宽度(虚拟屏幕是所有显示器的边框)

SM_CXVSCROLL(2)

垂直滚动条的宽度

SM_CYBORDER(6)

1. 一个窗口边框的高
2. 如果 Windows 为 3D 形态,则等同于 SM_CYEDGE 参数

SM_CYCAPTION(4)

标题区域的高度

SM_CYCURSOR(14)

1. 光标的高
2. 系统不能创建其他尺寸的光标

SM_CYDLGFRAME(8)

这个值与 SM_CYFIXEDFRAME 是相同的

SM_CYDOUBLECLK(37)

双击有效的矩形区域的高度

SM_CYDRAG(69)

鼠标在某个矩形内单击移动被认为是拖拽

SM_CYEDGE(46)

3-D 边框的高度

SM_CYFIXEDFRAME(8)

1. 具有标题栏但不可以调整大小的窗口边框的高度
2. 这个值等同于 SM_CYDLGFRAME

SM_CYFOCUSBORDER(84)

1. DrawFocusRect 函数画出的矩形上下边框的高度
2. Windows 2000:不支持

SM_CYFRAME(33)

这个值等同于 SM_CYSIZEFRAME

SM_CYFULLSCREEN(17)

客户区在全屏模式下的高度

SM_CYHSCROLL(3)

水平滚动条上箭头位图的高度

SM_CYICON(12)

1. 图标的默认高度
2. LoadIcon 函数只能载入该高度和 SM_CXICON 指定宽度的图标

SM_CYICONSPACING(39)

一个网格单元的大图标视图中项的高度

SM_CYKANJIWINDOW(18)

对于系统的双字节字符集版本,这个是汉字在窗口底部的高度

SM_CYMAXIMIZED(62)

最大化顶级窗口的高度

SM_CYMAXTRACK(60)

一个具有标题栏及可调整大小的窗口所能达到的最大高度

SM_CYMENU(15)

单行菜单栏的高

SM_CYMENUCHECK(72)

菜单上位图的高度

SM_CYMENUSIZE(55)

菜单条按钮的高度

SM_CYMIN(29)

窗口的最小高度

SM_CYMINIMIZED(58)

最小化窗口的高度

SM_CYMINSPACING(48)

各个最小化窗体所占的矩形的高度,该值需要大于等于 SM_CYMINIMIZED

SM_CYMINTRACK(35)

1. 窗口支持拖拽的最小高度
2. 当窗口小于此值时不允许拖拽
3. 可以通过处理 WM_GETMINMAXINFO 消息来覆盖此值

SM_CYSCREEN(1)

1. 主显示屏的屏幕高度
2. 该值与 GetDeviceCaps(hdcPrimaryMonitor, VERTRES) 结果一致

SM_CYSIZE(31)

标题栏上按钮的高度

SM_CYSIZEFRAME(33)

可调整大小的窗口的边框的高度

SM_CYSMCAPTION(51)

小标题的高度

SM_CYSMICON(50)

推荐的小图标的高度(一般出现在窗口标题栏)

SM_CYSMSIZE(53)

小标题按钮的高度

SM_CYVIRTUALSCREEN(79)

虚拟屏幕的高度(虚拟屏幕是所有显示器的边框)

SM_CYVSCROLL(20)

垂直滚动条的宽度

SM_CYVTHUMB(9)

垂直滚动条滑块框的高度

SM_DBCSENABLED(42)

如果 User32.dll 支持 DBCS 返回非 0 值,否则返回 0

SM_DEBUG(22)

如果已安装的 User.exe 的调试版本返回非 0 值,否则返回 0

SM_DIGITIZER(94)

1. 如果当前的操作系统是 Windows 7 或者 Windows Server 2008 R2 并且 Tablet PC input 服务已启动,则返回非 0 值,否则返回 0
2. 返回值是一个按位掩码,指定设备支持的数字化仪输入的类型
3. Windows Server 2008,Windows Vista 和 Windows XP/2000:不支持

SM_IMMENABLED(82)

如果启用了输入法管理器或输入法编辑器功能,则返回非 0,否则返回 0

SM_MAXIMUMTOUCHES(95)

1. 如果有在系统中的数字化仪,则返回非 0,否则返回 0
2. Windows Server 2008,Windows Vista 和 Windows XP/2000:不支持

SM_MEDIACENTER(87)

如果当前的操作系统是 Windows XP(MCE,媒体中心版),则返回非 0,否则返回 0

SM_MENUDROPALIGNMENT(40)

如果下来菜单相应的菜单栏项目是右对齐的,则返回非 0,否则如果是左对齐返回 0

SM_MIDEASTENABLED(74)

如果系统启用了希伯来语和阿拉伯语的语言,则返回非 0,否则返回 0

SM_MOUSEPRESENT(19)

1. 如果安装了鼠标返回非 0,否则返回 0
2. 由于支持虚拟鼠标并且有些系统是通过检测端口是否存在,所以该值很少为 0

SM_MOUSEHORIZONTALWHEELPRESENT(91)

如果鼠标有水平滚动轮,则返回非 0,否则返回 0

SM_MOUSEWHEELPRESENT(75)

如果鼠标有垂直滚动轮,则返回非 0,否则返回 0

SM_NETWORK(63)

1. 如果存在网络,则返回值最后一位被设置为 1,否则返回 0
2. 在其他位保留供将来使用

SM_PENWINDOWS(41)

如果安装了 Windows 手写画板的扩展,则返回非 0,否则返回 0

SM_REMOTECONTROL(0x2001)

1. 该系统信息是用在终端服务环境下,用于判断当前的终端服务器会话是否被远程控制
2. 如果当前的会话被远程控制,则返回非 0,否则返回 0
3. 你可以使用终端服务管理工具,如终端服务管理器(tsadmin.msc)和 shadow.exe 控制远程会话
4. 当一个会话正在被远程控制,其他用户可以查看该会话的内容,并有可能与它进行交互

SM_REMOTESESSION(0x1000)

1. 该系统信息是用在终端服务环境下
2. 如果调用进程是与终端服务客户端会话相关联,则返回非 0
3. 如果调用进程是与终端服务控制台会话相关联,则返回 0
4. Windows Server 2003 和 Windows XP:控制台会话不一定是物理控制台

SM_SAMEDISPLAYFORMAT(81)

1. 如果所有的显示器具有相同的颜色格式,则返回非 0,否则返回 0
2. 两个显示器可以具有相同的比特深度,但不同的色彩格式

SM_SECURE(44)

该系统信息被忽略,它总是返回 0

SM_SERVERR2(89)

如果系统是 Windows Server 2003 R2 则返回内部版本号,否则返回 0

SM_SHOWSOUNDS(70)

如果用户需要应用程序可视化音频信息,则返回非 0,否则返回 0

SM_SHUTTINGDOWN(0x2000)

1. 如果当前会话关闭返回非 0,否则返回 0
2. Windows 2000:不支持

SM_SLOWMACHINE(73)

如果计算机拥有一个低端(慢速)处理器,则返回非 0,否则返回 0

SM_STARTER(88)

如果当前的操作系统是 Windows 7 入门版,Windows Vista 入门版,或 Windows XP 入门版,则返回非 0,否则返回 0

SM_SWAPBUTTON(23)

如果鼠标左右键的含义互相交换,则返回非 0,否则返回 0

SM_SYSTEMDOCKED(0x2004)

反映了底座模式,返回 0 为非底座模式,否则返回非 0

SM_TABLETPC(86)

1. 如果当前的操作系统是 Windows XP Tablet PC 版,或者如果当前的操作系统是 Windows Vista 或 Windows 7 且 Tablet PC input 服务已启动,则返回非 0,否则返回 0
2. SM_DIGITIZER 标志表示通过运行 Windows 7 或 Windows Server 2008 R2 的设备支持的数字化仪输入的类型

SM_XVIRTUALSCREEN(76)

1. 虚拟屏幕左侧的坐标(虚拟屏幕是所有显示器的边框)
2. SM_CXVIRTUALSCREEN 标志为虚拟屏幕的宽度

SM_YVIRTUALSCREEN(77)

1. 虚拟屏幕顶侧的坐标(虚拟屏幕是所有显示器的边框)
2. SM_CYVIRTUALSCREEN 标志为虚拟屏幕的高度



返回值:

1. 如果函数调用成功,返回值索引参数对应的配置信息;

2. 如果函数调用失败,返回值是 0。
 

提示
郴维网为您提供各类专业服务:
软件开发,电脑配件销售,WIFI路由器销售,上门电脑维修,上门安装系统,系统安装,软、硬件安装,电脑除尘清灰,显示器维修,WIFI安装调试,服务器维护,数据恢复,密码破解,网络布线,网络检修,打印机维修,打印机加碳粉,苹果电脑安装系统,苹果电脑安装双系统,监控安装维护,电脑外包,笔记本电脑维修,餐饮、美容行业软件安装 等。。。。。。
点击次数:1301 更新时间:2017-5-21 20:11:58  【打印此页

上一条:GetTextMetrics

下一条:SetScrollRange

关键词推荐:郴州电脑城 郴州电脑维修公司 维修电脑公司 郴州软件开发 上门电脑维修 上门安装系统 笔记本电脑维修 郴州打印机维修 打印机加碳粉 电脑安装双系统 苹果电脑双系统 液晶显示器维修 联想笔记本维修 联想笔记本维修电话 戴尔笔记本维修电话 郴州戴尔笔记本维修 戴尔笔记本郴州维修点 华硕笔记本维修点 郴州华硕笔记本维修 郴州笔记本上网维修