也不知道这个问题深不深,搜了一上午没什么眉目,codeproject里也不知道搜什么关键字好我们知道Skin++加载皮肤是很方便的.只要加载这个皮肤所对应的资源文件即可.我的问题是1.如何创建这个资源文件.通过什么方法来加载,是有什么工具还是自定义的.我用记事本打开过Skin++的资源文件.他是将图片资源也写进去了.虽然里面都是乱码,但是可以猜测的出.这些图片不但写进去了 而且还存在一些贴图的信息,比如在什么位置.或者是偏移量 难道这些都是自定义的么,那如何来组成文件呢2.皮肤编辑器的制作思路.以前完全没有接触过这个东西.如果靠自己想估计要想到计算机的发展史了.我以前都是用单一的DLL做资源 难不成那种文件是lib或者DLL改了后缀名,不大可能.后来下载了QQ的皮肤编辑器.原本以为是利用什么编译器中的资源打包程序,比如rc.来实现资源打包.可是在安装目录中只有一个QQ的EXE编辑器文件 看来并没有调用什么程序.愁了.愁了...希望各位高人.能指点.
? eq_thumb2.bmpPK NUp29== ? eqfactor_full.bmpPK 芞p2 €
} equalizer.bmpPK p2?'"
其实像千千这种都算好解析的,最麻烦是涉及一个微软DIRECTUI那样的较有规模的界面。
里面包含了XML界面描述文件.只不过这个文件是需要先解压之后才得到得各个图片和XML.
剩下跟正常处理一样了.
但是是解压到内存了 还是解压到temp目录里了.
解压到内存要怎么取额.loadfromfile? 路径呢?
还是memcpy 要怎么区分文件与文件之间的间隔.
如果可以接受发布时带一个DLL的话看看这个http://www.codeproject.com/KB/library/LiteZip.aspx,挺好用的,直接解到内存
int idResource,
char const *filename)
{
// 存取二进制资源
HRSRC hResInfo = FindResource(hInstance, MAKEINTRESOURCE(idResource),
MAKEINTRESOURCE(RC_BINARYTYPE));
HGLOBAL hgRes = LoadResource(hInstance, hResInfo);
void *pvRes = LockResource(hgRes);
DWORD cbRes = SizeofResource(hInstance, hResInfo);
// 将二进制资源写到文件
HANDLE hFile = CreateFile(filename, GENERIC_WRITE, 0, 0, CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL, 0);
DWORD cbWritten;
WriteFile(hFile, pvRes, cbRes, &cbWritten, 0);
CloseHandle(hFile);
}
关键是控件自绘
更换皮肤的时候重新加载下资源文件就好有个皮肤的factory的例子你可以看看
就在codeprojecthttp://www.codeproject.com/KB/wtl/SkinX.aspx
要求:
1. VC++ 开发有2年以上经验,熟悉MFC
2. 有使用VC++开发过Skin UI产品的经验
3. 工作勤奋,有团队意识,能很好的和其他人协作.
招聘时间:
到 2009-4-1近期工作目标:
1.开发出最好的UI界面
能换肤,能界面能变形.
类似的软件产品如:QQ, Media Player公司介绍:
IS公司是一家高速发展中的互联网软件公司,现处于创业已起步阶段,已有多家投资公司投资.
我们专注于互联网的娱乐增值服务,目前开发的IS游戏语音平台,是NO.1 .
只要你通过baidu 或者google搜索 :"游戏语音",甚至 "语音",
您在最前面的搜索结果会看到: iSpeak 游戏语音 团队语音
我们的产品都是以口碑相传,已经千万级注册用户,同时在线有几十万,他们都是我们最忠实的用户.
您的加盟是我们IS公司发展的最大力量.您的智慧,经验,勤奋都有希望成为我们的中坚力量.
欢迎您加入我们的团队.公司网址:
www.ipark.cn
公司地址:
上海市徐家汇。
工作地点:
上海市徐家汇数娱大厦(番愚路与虹桥路交叉口)。联系方式:
MSN: [email protected] (加MSN ,请注明 UI VC++开发应聘)
email [email protected] (请把简历发到此邮箱)