如何在c#中使用AddFontResource用于带有.NET 2.0的Windows CE 5.0应用程序

时间:2018-02-07 22:55:47

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

我试图使用Visual Stdio 2008 pro和c#with .NET 2.0在我的汽车中开发适用于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!";
    }
}

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

1 个答案:

答案 0 :(得分:0)

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

开始。