Wince动态加载字体资源

#define     SUB_KEY   L"SOFTWARE\\Microsoft\\FontLink\\SystemLink" //子键
#define     KEY_VALUE L"\\NANDFLASH\\YeedonMedia\\Font\\msyh.ttf,微软雅黑" //键值
#define     FONT_PATH L"\\NANDFLASH\\YeedonMedia\\Font\\msyh.ttf"//字体路径

void ResetFontRegedit()
{
     DWORD dwIndex = 0, NameSize, NameCnt, NameMaxLen, Type;
     DWORD KeySize, KeyCnt, KeyMaxLen, DateSize, MaxDateLen;
     WCHAR *szKeyName;
     WCHAR *szValueName;
     LPBYTE szValueDate;
     HKEY hKey = NULL;

     LONG nResult = RegOpenKeyEx(HKEY_LOCAL_MACHINE, SUB_KEY, 0, KEY_ALL_ACCESS, &hKey);
     if(nResult != ERROR_SUCCESS)
     {
        printf("打开注册表失败! RegOpenKeyEx return %d, GetLastError() return %d", nResult, GetLastError());
     }

     //获取子键信息
     if(RegQueryInfoKey(hKey, NULL, NULL, NULL, &KeyCnt, &KeyMaxLen, NULL, &NameCnt, &NameMaxLen, &MaxDateLen, NULL, NULL) != ERROR_SUCCESS)
     {
        printf("(RegQueryInfoKey错误! GetLastError() return %d", GetLastError());
        ::RegCloseKey(hKey);
     }

     //枚举键值信息
     for(dwIndex = 0; dwIndex < NameCnt; dwIndex++)//枚举键值
     {
        DateSize = MaxDateLen + 1;
        NameSize = NameMaxLen + 1;
        szValueName = (WCHAR*)malloc(NameSize);
        szValueDate = (LPBYTE)malloc(DateSize);
        RegEnumValue(hKey, dwIndex, szValueName, &NameSize, NULL, &Type, szValueDate, &DateSize);//读取键值

        if(Type == REG_SZ)
        {
           //判断键值项类型并做其他修改
           printf("%s\n", szValueName);

           RegSetValueEx(hKey, szValueName, 0, REG_SZ, (byte*)KEY_VALUE, sizeof(KEY_VALUE));
        }
     }
     ::RegCloseKey(hKey);
}

void AddFontResource()
{
     RemoveFontResource();
     if(::AddFontResource(FONT_PATH) == 0) //加载字体失败
     {
          printf("加载字体资源失败!\n");
     }
     ::SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);
}

void RemoveFontResource()
{
     RemoveFontResource(FONT_PATH);
     ::SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);
}

时间: 2024-10-03 01:05:29

Wince动态加载字体资源的相关文章

Struts2的国际化(二)-利用超链接实现动态加载国际化资源文件

原理:程序是根据Locale来确定国际化资源文件,因此关键之处在于知道 Struts2 框架是如何确定 Local 对象的 ! 由于Struts2 使用 i18n 拦截器处理国际化,并且将其注册在默认的拦截器中,因此,可以通过阅读 I18N 拦截器知道. 具体确定 Locale 对象的过程: > Struts2 使用 i18n 拦截器 处理国际化,并且将其注册在默认的拦截器栈中 > i18n拦截器在执行Action方法前,自动查找请求中一个名为 request_locale 的参数. 如果该参

【转】Unity3D AssetBundles 动态加载游戏资源

AssetBundles are files which you can export from Unity to contain assets of your choice. These files use a proprietary compressed format and can be loaded on demand in your application. This allows you to stream content like models, textures, audio c

androidStudio中如何加载字体资源?

在android中字体的格式总是不能尽善尽美的显示出来 ,  于是要求我们使用一些有美感的字体,加载的方式(就像HTML的字体一样),我们需要通过加载字体的方式来使用android中不曾提供的字体; 首先在androidstudio中找到assets文件夹 , (位于serc/main/java下,与res在同一个文件里面) , 找到之后将字体文件(*.ttf)放入这个文件夹下(当然为了规范起见,我们可以再asseets下建立一个font文件夹表示存放字体文件). 如图所示: 资源存放成功之后,

Unity3D动态加载外部资源

最近一直在和这些内容纠缠,把心得和大家共享一下: Unity里有两种动态加载机制:一是Resources.Load,一是通过AssetBundle,其实两者本质上我理解没有什么区别.Resources.Load就是从一个缺省打进程序包里的AssetBundle里加载资源,而一般AssetBundle文件需要你自己创建,运行时动态加载,可以指定路径和来源的. 其实场景里所有静态的对象也有这么一个加载过程,只是Unity后台替你自动完成了. 详细说一下细节概念:AssetBundle运行时加载:来自

Unity 利用UGUI打包图集,动态加载sprite资源

今天做了一个UI界面,这个界面是好友界面,该界面上有若干个好友item. 需要对每个tem的头像对象(image)动态显示对应的头像.尝试利用UGUI的图集来加载,具体实现如下: 1.首先,需要知道SpriteAtlas的功能,可以保存一些关于要打包进去的sprite的设置.(详细参数设置的意义有待进一步研究),其中的Objects For Packing可以关联到需要打包进这个已创建图集的Sprite,或者文件夹,或者texture.目前这里的做法是关联到了文件夹. 2.此时,unity已经给

PictureBox BackGroundImage 动态加载 项目资源图片

如题, 代码: pictureBox_new.BackgroundImage = Properties.Resources.picture1; 变量说明: pictureBox_new 是添加的pictureBox控件命名, picture1 是导入项目资源中图片的命名: 是不是很方面呢,嘿嘿,,期待你分享更好更灵活的方法,谢谢, 愿上帝祝福你,

unity3d Resources.Load动态加载资源

初步整理并且学习unity3d资源加载方法,预计用时两天完成入门学习 Unity3d常用两种加载资源方案:Resources.Load和AssetBundle Resources.Load就是从一个缺省打进程序包里的AssetBundle里加载资源 而一般AssetBundle文件需要你自己创建,运行时动态加载,可以指定路径和来源的.其实场景里所有静态的对象也有这么一个加载过程,只是Unity后台替你自动完成 一:Resources.Load:使用这种方式加载资源,首先需要下Asset目录下创建

Android apk动态加载机制的研究(二):资源加载和activity生命周期管理

出处:http://blog.csdn.net/singwhatiwanna/article/details/23387079 (来自singwhatiwanna的csdn博客) 前言 为了更好地阅读本文,你需要先阅读Android apk动态加载机制的研究这篇文章,在此文中,博主分析了Android中apk的动态加载机制,并在文章的最后指出需要解决的两个复杂问题:资源的访问和activity生命周期的管理,而本文将会分析这两个复杂问题的解决方法.需要说明的一点是,我们不可能调起任何一个未安装的

如何让aspnet服务加载静态资源html(我的动态网页静态化) 转

我们知道,IIS自身是不能处理像ASPX扩展名这样的页面,只能直接请求像HTML这样的静态文件. 当客户端请求一个服务器资源时,这个HTTP请求会被inetinfo.exe进程截获(www服务),然后Check请求资源的类型,并依据资源映射信息(存储在IIS元库中,一种IIS专用的配置数据库)将请求的资源分配给特定的处理程序模块.1,如果是静态资源的请求,则分配由IIS处理(IIS在本地Web Server上访问请求的文件),将内容输出到控制台,发出请求的浏览器就能接收到它了.-----End2