使用Duilib也有一段时间了,了解了许多,但由于工作匆忙的原因,很多东西都是现学现用,没有深层的思考!导致后面重复使用前面学过、用过的知识出现了许多的问题!因此,在此恰当的时间(了解许多,但很模糊的情况下)做一些梳理和总结!也希望能帮助到一些正在学习Duilib的同仁!
第一步,包含duilib头文件。
#include "xxxUIlib.h" //xxx为UIlib.h的路径
using namespace Duilib; //Duilib为库自定义的名字空间
第二部,包含库文件。
//两者的不同是 支持不同的字符集
#pragma comment(lib, “xxxDuilib_ud.lib”)
//或者是
#pragma comment(lib, “xxxDuilib_d.lib”)
Duilib的主函数为:
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE /*hPrevInstance*/, LPSTR /*lpCmdLine*/, int nCmdShow) { // 在duilib中每个窗口均要定义一个CPaintManagerUI成员对象用来管理整个窗口的绘制。
CPaintManagerUI::SetInstance(hInstance); //将程序实例与皮肤绘制管理器挂钩CPaintManagerUI::SetResourcePath(CPaintManagerUI::GetInstancePath()+_T("Skin")); //设置皮肤库的资源路径,资源有图片、xml文件等的路径//CPaintManagerUI: 窗口消息及图形绘制管理器类,管理所有的控件,以及消息循环。管理程序的所有的资源。
CPaintManagerUI::SetResourceZip(/*路径*/);//皮肤库支持压缩文件,这里指定压缩文件路径
CPatrolWorkFrameWnd *pFrame = new CPatrolWorkFrameWnd;//new一个类,这个类继承自CWindowWnd类,CWindowWnd: 窗口对象类(窗口实例对象父类),所有要有窗口的类,都必须继承自此类。
if (pFrame == NULL) return 1;pFrame->Create(NULL,_T("巡线台"),UI_WNDSTYLE_FRAME,WS_EX_WINDOWEDGE);//这里会发送WM_CREATE消息,而这个类一般会在HandleMessage函数中处理WM_CREATE消息,
//创建完窗口后,可以调用该类的SetIcon(IDI_HW)函数来设置任务栏上显示的图标,然后调用CPaintManagerUI::MessageLoop(),进入消息循环pFrame->CenterWindow();pFrame->ShowWindow(true);CPaintManagerUI::MessageLoop();}