用于确定菜单的系统范围字体(特别是颜色)的Win32 API调用是什么。
这相当于进入外观设置 - 高级 - 然后选择菜单作为要查看的项目。
我可以使用GetSysColor查找各种系统范围的窗口元素的颜色,但找不到字体的等效颜色。
答案 0 :(得分:3)
GetSysColor(COLOR_MENUTEXT)为您提供菜单字体颜色。
SystemParametersInfo将允许您恢复一些字体信息,同样GetStockObject用于在设备上下文中绘图。
但系统字体(可能)是Tahoma(在XP / W2K上)或MS Sans Serif,具体取决于您设置Dialog的方式。
有关详情,请参阅http://blogs.msdn.com/oldnewthing/archive/2005/02/04/366987.aspx。
答案 1 :(得分:0)
在C#中,有Control.DefaultFont,对于本机访问,this blog描述了获取它的win32 API调用。 API调用是SystemParametersInfo()。
答案 2 :(得分:0)
您可以使用SystemParametersInfo
查找这些字体:
SystemParametersInfo(SPI_GETNONCLIENTMETRICS, ...)
返回包含NONCLIENTMETRICS
structure的LOGFONT
structures:
lfCaptionFont
- 用于两者的字体" Active Title Bar"和"非活动标题栏" lfSmCaptionFont
- 用于小标题栏的字体,"调色板标题" lfMenuFont
- 菜单栏中使用的字体。lfStatusFont
- 状态栏和工具提示中使用的字体lfMessageFont
- 消息框中使用的字体。 SystemParametersInfo(SPI_GETICONTITLELOGFONT, ...)
会为带有图标的文字返回LOGFONT
结构。
在C#/ .NET中,您可以使用System.System.Drawing.SystemFonts
class(WinForms)或System.Windows.SystemFonts
class(WPF)。