什麼是Win32 API調用以確定用於說菜單的系統範圍字體(特別是顏色)。確定Windows系統寬字體
這將相當於進入外觀設置 - 高級 - 然後選擇菜單作爲要查看的項目。
我可以使用GetSysColor查找各種系統級窗口元素的顏色,但找不到字體的等效項。
什麼是Win32 API調用以確定用於說菜單的系統範圍字體(特別是顏色)。確定Windows系統寬字體
這將相當於進入外觀設置 - 高級 - 然後選擇菜單作爲要查看的項目。
我可以使用GetSysColor查找各種系統級窗口元素的顏色,但找不到字體的等效項。
GetSysColor(COLOR_MENUTEXT)爲您提供菜單字體顏色。
SystemParametersInfo將允許您恢復某些字體信息,同樣GetStockObject用於在設備上下文上繪圖。
但系統字體(可能)是Tahoma(在XP/W2K上)或MS Sans Serif,具體取決於您如何設置對話框。
查看http://blogs.msdn.com/oldnewthing/archive/2005/02/04/366987.aspx瞭解更多。
在C#中,有Control.DefaultFont,對於本機訪問,this blog描述了獲取它的win32 API調用。 API調用是SystemParametersInfo()。
您可以使用SystemParametersInfo
找到這些字體:
SystemParametersInfo(SPI_GETNONCLIENTMETRICS, ...)
返回包含LOGFONT
structures爲NONCLIENTMETRICS
structure:
lfCaptionFont
- 同時用於 「活動標題欄」 和 「非活動標題欄」lfSmCaptionFont
- 用於小標題欄的字體,「調色板標題」lfMenuFont
- 菜單欄中使用的字體秒。lfStatusFont
- 狀態欄和工具提示中使用的字體lfMessageFont
- 消息框中使用的字體。SystemParametersInfo(SPI_GETICONTITLELOGFONT, ...)
返回一個LOGFONT
結構的文字伴隨圖標。
在C#/。NET可以使用System.System.Drawing.SystemFonts
class(的WinForms)或System.Windows.SystemFonts
class(WPF)。
`SPI_GETNONCLIENTMETRICS`和`SPI_GETICONTITLELOGFONT`似乎是傳遞給`SystemParametersInfo`的相關鍵 – CodesInChaos 2016-02-11 11:30:01