如何得到系统设置中的窗口编框、标题栏和菜单的大小?
在屏幕——右键单击——属性后可以进入“显示 属性”并可以更改其中的一些窗口设定,希望知道如何通过编程得到窗口编框、标题栏和菜单这三项的“大小”属性。谢谢!
api 得到,具體 那個 api我得查
這個是對標題顏色的控制,來試試這個、
Private Declare Function SetSysColors Lib "user32" (ByVal nChanges As Long, lpSysColor As Long, lpColorValues As Long) As Long
Private Declare Function GetSysColor Lib "user32" (ByVal nIndex As Long) As Long
Const COLOR_SCROLLBAR = 0 'The Scrollbar colour
Const COLOR_BACKGROUND = 1 'Colour of the background with no wallpaper
Const COLOR_ACTIVECAPTION = 2 'Caption of Active Window
Const COLOR_INACTIVECAPTION = 3 'Caption of Inactive window
Const COLOR_MENU = 4 'Menu
Const COLOR_WINDOW = 5 'Windows background
Const COLOR_WINDOWFRAME = 6 'Window frame
Const COLOR_MENUTEXT = 7 'Window Text
Const COLOR_WINDOWTEXT = 8 '3D dark shadow (Win95)
Const COLOR_CAPTIONTEXT = 9 'Text in window caption
Const COLOR_ACTIVEBORDER = 10 'Border of active window
Const COLOR_INACTIVEBORDER = 11 'Border of inactive window
Const COLOR_APPWORKSPACE = 12 'Background of MDI desktop
Const COLOR_HIGHLIGHT = 13 'Selected item background
Const COLOR_HIGHLIGHTTEXT = 14 'Selected menu item
Const COLOR_BTNFACE = 15 'Button
Const COLOR_BTNSHADOW = 16 '3D shading of button
Const COLOR_GRAYTEXT = 17 'Grey text, of zero if dithering is used.
Const COLOR_BTNTEXT = 18 'Button text
Const COLOR_INACTIVECAPTIONTEXT = 19 'Text of inactive window
Const COLOR_BTNHIGHLIGHT = 20 '3D highlight of button
Const COLOR_2NDACTIVECAPTION = 27 'Win98 only: 2nd active window color
Const COLOR_2NDINACTIVECAPTION = 28 'Win98 only: 2nd inactive window color
Private Sub Form_Load()
'KPD-Team 1998
'URL: http://www.allapi.net/
'E-Mail: KPDTeam@Allapi.net
'Get the caption's active color
col& = GetSysColor(COLOR_ACTIVECAPTION)
'Change the active caption's color to red
t& = SetSysColors(1, COLOR_ACTIVECAPTION, RGB(255, 0, 0))
MsgBox "The old title bar color was" + Str$(col&) + " and is now" + Str$(GetSysColor(COLOR_ACTIVECAPTION))
End Sub
你看看对不对。不过都是活动窗口
Private Declare Function GetSystemMetrics Lib "user32.dll" (ByVal nIndex As Long) As Long
Private Const SM_CXMENUSIZE As Long = 54
Private Const SM_CYMENUSIZE As Long = 55
Private Const SM_CXBORDER As Long = 5
Private Const SM_CYBORDER As Long = 6
Private Const SM_CYCAPTION As Long = 4
Dim MenuSize As Long, CaptionSize As Long, BorderSize As Long
MenuSize = GetSystemMetrics(SM_CYMENUSIZE)
BorderSize = GetSystemMetrics(SM_CYBORDER)
CaptionSize = GetSystemMetrics(SM_CYCAPTION)
MsgBox "窗口边框(X):" & Format(BorderSize) & vbCrLf & "菜单大小(X):" & Format(MenuSize) & _
vbCrLf & "标题栏高度:" & Format(CaptionSize - BorderSize), vbInformation, "信息"
GetSystemMetrics
VB声明
Declare Function GetSystemMetrics Lib "user32" Alias "GetSystemMetrics" (ByVal nIndex As Long) As Long
说明
返回与windows环境有关的信息
返回值
Long,取决于具体的常数索引
参数表
参数 类型及说明
nIndex Long,常数,指定欲获取的信息;如下表所示
nIndex常数设置
常数定义 取得信息
SM_ARRANGE 设置windows如何排列最小化窗口的一个标志。参考api32.txt中的ARW常数
SM_CLEANBOOT 指定启动模式。0=普通模式;1=带网络支持的安全模式
SM_CMETRICS 可用系统环境的数量
SM_CMOUSEBUTTON 鼠标按钮(按键)的数量。如没有鼠标,就为零
SM_CXBORDER, SM_CYBORDER 尺寸不可变边框的大小
SM_CXCURSOR, SM_CYCURSOR 标准指针大小
SM_CXDLGFRAME, SM_CYDLGFRAME 对话框边框的大小
SM_CXDOUBLECLK, SM_CYDOUBLECLK 双击区域的大小(参考注解)
SM_CXFRAME, SM_CYFRAME 尺寸可变边框的大小(在win95和nt 4.0中使用SM_C?FIXEDFRAME)
SM_CXFULLSCREEN, SM_CYFULLSCREEN 最大化窗口客户区的大小
SM_CXHSCROLL, SM_CYHSCROLL 水平滚动条上的箭头大小
SM_CXHTHUMB, SM_CYHTHUMB 滚动块在水平滚动条上的大小
SM_CXICON, SM_CYICON 标准图标的大小
SM_CXICONSPACING, SM_CYICONSPACING 桌面图标之间的间隔距离。在win95和nt 4.0中是指大图标的间距
SM_CXMAXIMIZED, SM_CYMAXIMIZED 最大化窗口的默认尺寸
SM_CXMAXTRACK, SM_CYMAXTRACK 改变窗口大小时,最大的轨迹宽度
SM_CXMENUCHECK, SM_CYMENUCHECK 菜单复选号位图的大小
SM_CXMENUSIZE, SM_CYMENUSIZE 菜单栏上的按钮大小
SM_CXMIN, SM_CYMIN 窗口的最小尺寸
SM_CXMINIMIZED, SM_CYMINIMIZED 最小化的窗口必须填充进去的一个矩形小于或等于SM_C?ICONSPACING
SM_CXMINTRACK, SM_CYMINTRACK 窗口的最小轨迹宽度
SM_CXSCREEN, SM_CYSCREEN 屏幕大小
SM_CXSIZE, SM_CYSIZE 标题栏位图的大小
SM_CXSIZEFRAME, SM_CYSIZEFRAME 具有WS_THICKFRAME样式的窗口的大小
SM_CXSMICON, SM_CYSMICON 小图标的大小
SM_CXSMSIZE, SM_CYSMSIZE 小标题按钮的大小
SM_CXVSCROLL, SM_CYVSCROLL 垂直滚动条中的箭头按钮的大小
SM_CYCAPTION 窗口标题的高度
SM_CYKANJIWINDOW Kanji窗口的大小(Height of Kanji window)
SM_CYMENU 菜单高度
SM_CYSMCAPTION 小标题的高度
SM_CYVTHUMB 垂直滚动条上滚动块的高度
SM_DBCSENABLED 如支持双字节则为TRUE
SM_DEBUG 如windows的调试版正在运行,则为TRUE
SM_MENUDROPALIGNMENT 如弹出式菜单对齐菜单栏项目的左侧,则为零
SM_MIDEASTENABLED 允许了希伯来和阿拉伯语
SM_MOUSEPRESENT 如安装了鼠标则为TRUE
SM_MOUSEWHEELPRESENT 如安装了带轮鼠标则为TRUE;只适用于nt 4.0
SM_NETWORK 如安装了网络,则设置位0。其他位保留未用
SM_PENWINDOWS 如装载了支持笔窗口的DLL,则表示笔窗口的句柄
SM_SECURE 如安装了安全(保密)机制,则为TRUE
SM_SHOWSOUNDS 强制视觉提示播放声音
SM_SLOWMACHINE 系统速度太慢,但仍在运行中(System is too slow for effective use but is being run anyway)
SM_SWAPBUTTON 如左右鼠标键已经交换,则为TRUE
注解
双击区域指定屏幕上一个特定的显示区域,只有在这个区域内连续进行两次鼠标单击,才有可能被当作双击事件处理
其他
常数 SM_ARRANGE, SM_CLEANBOOT, SM_CMETRICS, SM_C?MAXIMIZED, SM_C?MAXTRACK, SM_C?SIZEFRAME, SM_C?SMICON, SM_C?SMSIZE, SM_CYSMCAPTION, SM_SECURE, SM_SHOWSOUNDS, and SM_SLOWMACHINE 未获 NT 3.51 及更早版本的支持