如何获取xp系统默认字体
我要算一个窗体的Title的宽度,所以需要知道该Title的默认字体,也就是XP系统的默认字体,这个该如何获取?
求解。。。
非 “System.Drawing.SystemFonts.DefaultFont”
[解决办法]
这个需要你了解GDI方面的知识。系统默认字体是GDI的内置对象,可以通过GetStockObject(DEFAULT_GUI_FONT) 获得。
MSDN有一篇文章,应该对你有所帮助:如何:在 Windows 窗体应用程序中响应字体方案更改
[解决办法]
- C# code
得到系统默认字体 private FontFamily[] fontFamilys; private void GetFontFamilies() { Graphics g = this.CreateGraphics(); fontFamilys = FontFamily.GetFamilies(g); for (int i = 0; i < fontFamilys.Length; i++) { cbxFont.Items.Add(fontFamilys[i].Name); } }
[解决办法]
- C# code
// 通过注册表获取系统默认字体 string DefaultFontFaceName = (string)Microsoft.Win32.Registry.GetValue(@'HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/GRE_Initialize', 'GUIFont.Facename', 'SimSun');
[解决办法]
这是win32的api
用法类似:
[DllImport("User32.dll")]
private static extern IntPtr GetWindowDC(IntPtr hwnd);
你要查msdn,看GetStockObject是那个dll的,参数如何
[解决办法]
授人以渔。作为程序员,有一点探索欲是很好的。