首页 » 开源 » Duilib » 正文

MFC使用duilib的几种方式

编辑:qdtroy 2017年4月17日 0评论 2,135浏览

MFC流行了很多年的界面开发工具包,随着时代的进步,UI设计也有很大的改变,以前中规中矩的UI界面也开始变得美观漂亮起来。但是MFC受制于其绘制机制,做这些个性化的设计就力不从心了。最近几年随着DirectUI的流行,越来越多的产品开始使用这种技术来进行开发了。以DirectUI为技术基础的duilib类库,以其简单易用,功能不俗赢得了广大程序员的青睐。新的项目可以从你个头开始采用duilib开发,但是过去很多项目需要升级维护,要是重构很是浪费人力物力,于是采取了折中的方法:以MFC作为框架,采用duilib来美化程序界面。下面就来简单介绍一下,具体MFC和duilib都有哪几种结合方式:

1、父子嵌套:MFC窗口作为主窗口,创建duilib窗口作为其子窗口来实现。这样做需要把原来父窗口的一些和界面交互的逻辑移植到子窗口来实现,但是实现相对简单,有很多开发使用这种方式;

2、反客为主:创建duilib窗口为主窗口,把原有的MFC窗口作为一个普通的窗口控件来管理。实现方法:通过重载CControlUI维护一个HWND句柄,并通过SetVisible、SetEnabled和SetPos来进行窗口状态的维护;

3、偷梁换柱:保持原有MFC窗口不变,通过Hook其窗口过程来接管其窗口绘制方式,这种方法不仅能完美解决界面绘制问题,而且还能保持原有的处理逻辑基本不需要改变,省时省力;

针对上述几种方法,可以根据自己的项目特点来进行选择,不过我自己最喜欢的就是第三种方式。所以下面提供第三种方式的使用例子:

1、截图:

2、完整代码请联系Troy(QQ:656067418)