用于确定菜单的系统范围字体(特别是颜色)的 Win32 API 调用是什么?
这相当于进入“外观设置”-“高级”-然后选择“菜单”作为要查看的项目。
我可以使用 GetSysColor 查找各种系统范围窗口元素的颜色,但无法找到字体的等效颜色。
您可以使用SystemParametersInfo以下方法查找这些字体:
SystemParametersInfo(SPI_GETNONCLIENTMETRICS, ...)返回一个包含以下结构的NONCLIENTMETRICS结构:LOGFONT
lfCaptionFont-- 用于“活动标题栏”和“非活动标题栏”的字体lfSmCaptionFont-- 用于小标题栏的字体,“调色板标题”lfMenuFont-- 菜单栏中使用的字体。lfStatusFont-- 状态栏和工具提示中使用的字体lfMessageFont-- 消息框中使用的字体。SystemParametersInfo(SPI_GETICONTITLELOGFONT, ...)返回LOGFONT伴随图标的文本的结构。
在 C# / .NET 中,您可以使用System.Drawing.SystemFonts类(WinForms) 或 System.Windows.SystemFonts类(WPF)。
GetSysColor(COLOR_MENUTEXT) 为您提供菜单字体颜色。
SystemParametersInfo 将允许您恢复一些字体信息,同样 GetStockObject 用于在设备上下文上绘图。
但系统字体(可能)是 Tahoma(在 XP/W2K 上)或 MS Sans Serif,具体取决于您如何设置 Dialog。
有关详细信息,请参阅http://blogs.msdn.com/oldnewthing/archive/2005/02/04/366987.aspx。
| 归档时间: |
|
| 查看次数: |
4378 次 |
| 最近记录: |