Win32 API调用是什么,可以确定系统范围内的字体(特别是颜色),比如菜单。
这相当于进入外观设置-高级-然后选择菜单作为要查看的项目。
我可以使用GetSysColor来找到各种系统范围内窗口元素的颜色,但无法找到等效的字体。
Win32 API调用是什么,可以确定系统范围内的字体(特别是颜色),比如菜单。
这相当于进入外观设置-高级-然后选择菜单作为要查看的项目。
我可以使用GetSysColor来找到各种系统范围内窗口元素的颜色,但无法找到等效的字体。
您可以使用SystemParametersInfo
来查找这些字体:
SystemParametersInfo(SPI_GETNONCLIENTMETRICS, ...)
返回一个包含LOGFONT
结构的NONCLIENTMETRICS
结构,其中包括以下字体:
lfCaptionFont
-- 用于“活动标题栏”和“非活动标题栏”的字体lfSmCaptionFont
-- 用于小标题栏,“调色板标题”的字体lfMenuFont
-- 菜单栏中使用的字体。lfStatusFont
-- 状态栏和工具提示中使用的字体lfMessageFont
-- 消息框中使用的字体。SystemParametersInfo(SPI_GETICONTITLELOGFONT, ...)
返回一个 LOGFONT
结构,用于图标附带文本的显示。
System.Drawing.SystemFonts
类(WinForms)或 System.Windows.SystemFonts
类(WPF)。GetSysColor(COLOR_MENUTEXT) 可以获取菜单字体颜色。
SystemParametersInfo可以帮助您恢复一些字体信息,同样,GetStockObject可以用于在设备上下文中绘图。
但是系统字体(可能)是Tahoma(在XP/W2K上)或MS Sans Serif(取决于您如何设置对话框)。
详情请参见此处。
SPI_GETNONCLIENTMETRICS
andSPI_GETICONTITLELOGFONT
seem to be the relevant keys to pass toSystemParametersInfo
- CodesInChaos