C#动态加载和卸载字体(以文件的方式)

时间:2022-08-12 05:28:24 阅读: 最新文章 文档下载
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

C#动态加载和卸载字体(以文件的方式)

2009-07-01 17:18

因为是在CE里,所以是用Coredll PC机用的不是这个,可查MSDN

[DllImport("coredll", EntryPoint = "AddFontResource")]

private static extern int AddFontResource([In,MarshalAs( UnmanagedType.LPWStr)]string fontSource);

[DllImport("coredll", EntryPoint = "SendMessage")]

private static extern int SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, IntPtr lParam);

int installFont = AddFontResource(@"\SDMEM\MSYH.TTF"); //这是字体的安装 返回不为0即成功

SendMessage((IntPtr)0xffff, 0x001d, IntPtr.Zero, IntPtr.Zero); //通知其它正在运行的应用程序,有新字体注册了

//枚举字体

InstalledFontCollection enumFonts = new InstalledFontCollection();

FontFamily[] fonts = enumFonts.Families;

foreach (FontFamily font in fonts)

{

MessageBox.Show(font.Name);

}

如果只是自己的程序使用的话,那么就没必要这么折腾了 :

System.Drawing.Text.PrivateFontCollection privateFonts = new System.Drawing.Text.PrivateFontCollection();

privateFonts.AddFontFile("fileName"); //D:\aa\abc.ttf

System.Drawing.Font font = new Font(privateFonts.Families[0], 12);

(以文件的方式)

2009-07-01 17:18

因为是在CE里,所以是用Coredll PC机用的不是这个,可查MSDN

[DllImport("coredll", EntryPoint = "AddFontResource")]

private static extern int AddFontResource([In,MarshalAs( UnmanagedType.LPWStr)]string fontSource);

[DllImport("coredll", EntryPoint = "SendMessage")]

private static extern int SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, IntPtr lParam);

int installFont = AddFontResource(@"\SDMEM\MSYH.TTF"); //这是字体的安装 返回不为0即成功

SendMessage((IntPtr)0xffff, 0x001d, IntPtr.Zero, IntPtr.Zero); //通知其它正在运行的应用程序,有新字体注册了

//枚举字体

InstalledFontCollection enumFonts = new InstalledFontCollection();

FontFamily[] fonts = enumFonts.Families;

foreach (FontFamily font in fonts)

{

MessageBox.Show(font.Name);

}

如果只是自己的程序使用的话,那么就没必要这么折腾了 :

System.Drawing.Text.PrivateFontCollection privateFonts = new System.Drawing.Text.PrivateFontCollection();

privateFonts.AddFontFile("fileName"); //D:\aa\abc.ttf

System.Drawing.Font font = new Font(privateFonts.Families[0], 12);

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/moonshineidolon/archive/2009/12/28/5090538.aspx

本文来源:https://www.wddqw.com/doc/57525feeaeaad1f346933f84.html