如何在智能设备开发中使用ORIYA字体

本文关键字:ORIYA 字体 开发 智能 | 更新日期: 2023-09-27 17:59:40

我正在为基于WINDOWS CE5.0的设备开发一个应用程序。它要求完全使用奥里亚语(印度区域语言)。由于视觉工作室使用英语作为标准语言,请告诉我如何进行?我试图复制WINDOWS CE设备的WINDOWS/FONTS文件夹中的字体,但当我重新启动设备时,字体文件消失了。我在c#中开发了该应用程序,并在开发系统中将标签文本更改为oriyaa。它在开发系统上看起来不错,但当我将其部署到设备中时,所有标签文本都显示为英语。我不知道发生了什么事?我还需要用ORIYA语言设置LABEL.TEXT属性。有可能吗?如何在ORIYA中获取用户输入?请帮忙。。。。。谢谢

如何在智能设备开发中使用ORIYA字体

不太确定你所说的浏览器是什么意思,但对于Forms,你可以使用PrivateFontCollection

您可以从应用程序中的文件夹加载字体,然后使用AddFontFileAddMemoryFont。因此,现在客户端可以看到您设置的字体中的控件,并且无论是否安装都可以使用该控件

我对基于英文的字体使用了以下方法,但我不确定它是否适用于您的情况。这种方法的原始来源是Chris Tacke(SO用户@ctacke)的一篇不错的帖子,并进行了一些修改。

    [DllImport("coredll.dll")]
    private static extern int AddFontResource(string lpszFilename);
    [DllImport("coredll.dll", SetLastError = true)]
    private static extern int SendMessage(IntPtr hWnd, int wMsg, IntPtr wParam, IntPtr lParam);
    static IntPtr HWND_BROADCAST = (IntPtr)0xFFFF;
    const int WM_Fontchange = 0x001D;
    private static void RegisterFont(string aFontPath, string aTargetFontPath)
    {
        IntPtr thir = (IntPtr)0;
        IntPtr fourth = (IntPtr)0;
        try
        {
            if (!System.IO.File.Exists(aTargetFontPath))
                System.IO.File.Copy(aFontPath, aFontTargetPath);
        }
        catch { throw; }
        int _Loaded = AddFontResource(aFontTargetPath);
        if (_Loaded != 0)
            SendMessage(HWND_BROADCAST, WM_Fontchange, thir, fourth);
    }