【问题标题】:How to use AddFontResource in c# for Windows CE 5.0 application with .NET 2.0如何在 c# 中为带有 .NET 2.0 的 Windows CE 5.0 应用程序使用 AddFontResource
【发布时间】:2023-03-16 14:10:01
【问题描述】:

我正在尝试使用 Visual Stdio 2008 pro 和带有 .NET 2.0 的 c# 为我的汽车中的 Windows CE 5.0 设备开发智能设备程序。我想使用 AddFontResourceEx 添加字体,但我无法让它工作。代码如下:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }
    private const uint FR_PRIVATE=0x10;
    [DllImport("GDI32.dll",EntryPoint="AddFontResourceEx")]
    static extern int AddFontResourceEx(string lpszFilename, uint fl, IntPtr pdv);

    private void button1_Click(object sender, EventArgs e)
    {
        AddFontResourceEx(".\\ELEPHNT.TTF", FR_PRIVATE, IntPtr.Zero);
       label1.ForeColor = Color.FromArgb(155, 25, 34);
       label1.Font = new Font("ELEPHNT.TTF", 18, FontStyle.Regular);
       label1.Text = "Hello world!";
    }
}

它构建成功,我可以运行程序,但字体不会改变。我将字体文件添加到程序所在的同一目录中。你能告诉我有什么问题吗?

【问题讨论】:

  • 你不能在 C# 代码中使用 C++ 声明,你需要使用 pinvoke 和兼容的数据类型:
  • 1.必须 P/Invoke coredll.dll 而不是 gdi32.dll 2. 字体文件的地址应该是 @\\MMC_STORAGE\\KORN.TTF 3. 我设备中的字体是位图字体而不是矢量字体 4.入口点应该是 AddFontResourceW 5. 字体标签应该由它的字体名称而不是由字体文件的名称调用 6. AddFontResource 的其他语句不应在末尾有 Ex 7. 模拟器应该在挂起后软重置,而不仅仅是由框架的闭合十字退出。

标签: c# visual-studio-2008 windows-ce .net-2.0 smart-device


【解决方案1】:

您不能在 C# 代码中使用 C++ 声明,您需要使用 pinvoke 和兼容的数据类型: http://www.pinvoke.net/search.aspx?search=addfontresource&namespace=[All] 在 Windows CE 中没有相对路径,因此您必须使用字体文件的完整路径,从 .

【讨论】:

  • 我尝试在此处添加我的评论和更改后的代码,但已达到最大字符数。因此我改变了我上面的原始问题。你能看一下吗?我知道我把它搞砸了,但这是我让它发挥作用的唯一方法。
  • 您写道:“...必须使用字体文件的完整路径,从 . 开始。”你没有说完这句话。你能告诉我你想在那里提到什么吗?
  • 它是从 root "\" 开始的,抱歉这个问题
  • 我终于想通了: 1. 必须使用 coredll.dll 而不是 gdi32.dll 2. 字体文件的地址应该是@\\MMC_STORAGE\\ELEPHNT.FNT 3. 字体在我的设备中是位图字体而不是矢量字体 4. 入口点应该是 AddFontResourceW 5. 字体标签应该由其字体名称而不是由字体文件的名称调用 6. 其他带有 AddFontResource 的语句不应在进一步我发现,当使用模拟器时,它应该在挂起后软复位,而不仅仅是通过框架的关闭十字退出。感谢 Valter 的所有支持
猜你喜欢
  • 1970-01-01
  • 2011-08-12
  • 2012-12-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-23
  • 1970-01-01
  • 1970-01-01
  • 2011-09-13
相关资源
最近更新 更多