您的位置:首页 > 产品设计 > UI/UE

Duilib 使用Zip资源

2017-12-03 13:59 155 查看

准备

首先将资源文件打包为Zip格式

像这样:



并将其命名为skin

代码

WinMain

首先在WinMain添加如下代码

CPaintManagerUI::SetInstance(hInstance);
CPaintManagerUI::SetCurrentPath(CPaintManagerUI::GetInstancePath());//①
CPaintManagerUI::SetResourceZip(_T("skin"));//②

CFrameWnd* Wnd;
Wnd= new CFrameWnd();
Wnd->Create(NULL, _T("Windows"), UI_WNDSTYLE_FRAME, WS_EX_WINDOWEDGE);
Wnd->CenterWindow();
Wnd->ShowWindow();

CPaintManagerUI::MessageLoop();

::CoUninitialize();
return 0;


代码注释

设置资源文件的根目录,这里就是程序运行的目录,如果这里设置的是“C:\Shin”则下面设置的文件就相当与“C:\Shin\skin”。

非常重要的一步,我们之前打包的资源文件就在这里设置

警告

这样做有一个缺点就是所有窗口都只能使用skin中的资源。修改方法在下文。

CFrameWnd

之前我们创建窗口的使用用到了类CFrameWnd,在CFrameWnd中添加一下代码:

CDuiString GetSkinFolder() { return _T(""); };
CDuiString GetSkinFile() { return _T("Ui.xml"); };
LPCTSTR GetWindowClassName(void) const { return _T("Windows"); };


代码注释

用过官方版的Duilib都应该知道这三个是缺一不可的,所以呢GetSkinFolder的返回值就只能为空。

如果有需要可以使用:

CPaintManagerUI::SetResourceZip(_T("skin2"));
CPaintManagerUI::ReloadSkin();


来更改资源文件。

最后

编译,开跑!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Duilib c++ 资源 打包