2013年9月27日

2013 duilib入门简明教程 -- 完整的自绘标题栏(8)

摘要: 看了前面那么多教程,相信对duilib已有基本映像了,我们就快马加鞭,做出一个完整的自绘标题栏吧~看到下面这个效果图,小伙伴们是不是有点惊呆了呢~O(∩_∩)O~duilib实现以上效果非常简单, 1、将按钮图片的文件夹放到exe目录,点此下载 2、main.cpp的代码无需改动,只需改动XML,XML内容如下(受网页宽度限制,以下XML格式有点乱,请复制到本地的XML编辑器上,以方便查看): ... 阅读全文

posted @ 2013-09-27 23:19 Alberl 阅读(40809) 评论(29) 推荐(3) 编辑

2013 duilib入门简明教程 -- XML基础类(7)

摘要: 现在大家应该对XML描述界面不那么陌生了,那么我们做进一步介绍。 前面的教程我们写了很多代码,为的是让大家了解下基本流程,其实duilib已经对常用的操作做了很好的包装,正式使用时无需像前面的教程那样写那么多代码,下面我们就来看看XML的包装类WindowImplBase: WindowImplBase类是一个duilib的基础框架类,封装了常用操作,以方便大家使用。 它是以XML作为界面描述的,所以用它的时候,我们必须将界面描述写到XML里。 下面将是我们第三次实现Hello World程序~O(∩_∩)O~class CDuiFrameWnd : public WindowImp... 阅读全文

posted @ 2013-09-27 23:04 Alberl 阅读(36051) 评论(35) 推荐(4) 编辑

2013 duilib入门简明教程 -- XML配置界面(6)

摘要: 前面那些教程都是为了让小伙伴们从win32、MFC过渡到duilib,让大家觉得duilib不是那么陌生,如果大家现在还对duilib非常陌生的话,那就说明前面的教程做得不好,请大家在下面留言,我会一一查看,并做出改进。从这个教程开始就是见证奇迹的时刻啦~\(^o^)/~其实duilib主打的界面制作方式是XML + UI引擎 + win32框架,其实和浏览器HTML + CSS + 渲染引擎的方式非常类似,可以将其理解为一个非常mini的浏览器。而用duilib写界面时,大部分是在写XML,类似于写HTML,这点可能会让习惯MFC等windows界面的伙伴们有点不习惯,需要克服克服,相信在看 阅读全文

posted @ 2013-09-27 22:18 Alberl 阅读(44760) 评论(12) 推荐(0) 编辑

2013 duilib入门简明教程 -- 自绘标题栏(5)

摘要: 如果大家有做过标题栏的自绘,肯定会感慨各种不容易,并且现有的一些资料虽然完美的实现了功能,但是代码比较乱,需要自行整理。如果用duilib,就是小case啦。duilib其实并没有区分标题栏和客户区,它的实现方法是屏蔽了系统自带的标题栏,用客户区来模拟标题栏,所以想怎么画就怎么画,非常方便。1、我们首先屏蔽一下系统自带的标题栏, 在HandleMessage函数里屏蔽以下三个消息即可 WM_NCACTIVATE、WM_NCCALCSIZE、WM_NCPAINT代码如下: virtual LRESULT HandleMessage(UINT uMsg, WPARAM wParam, LPA... 阅读全文

posted @ 2013-09-27 21:56 Alberl 阅读(36978) 评论(9) 推荐(0) 编辑

2013 duilib入门简明教程 -- 响应按钮事件(4)

摘要: 上一个Hello World的教程里有一句代码是这样的:CControlUI*pWnd=newCButtonUI;也就是说,其实那整块绿色背景区域都是按钮的区域。(这里简要介绍下,CControlUI 是duilib中所有控件的基类,而CButtonUI则是按钮类,更多的控件会在后面的教程一一介绍。)那么怎样响应按钮的点击消息呢?我们需要几个步骤:1、调用AddNotifier函数将消息加入duilib的消息循环2、给按钮设置一个唯一的控件ID(SetName函数)3、在Notify函数里处理按钮点击消息。代码如下:class CDuiFrameWnd : public CWindowWnd, 阅读全文

posted @ 2013-09-27 21:17 Alberl 阅读(43821) 评论(10) 推荐(2) 编辑

2013 duilib入门简明教程 -- 第一个程序 Hello World(3)

摘要: 小伙伴们有点迫不及待了么,来看一看Hello World吧:新建一个空的win32项目,新建一个main.cpp文件,将以下代码复制进去:#include #include int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow){ ::MessageBox(NULL, _T("Hello World !"), NULL, NULL); return 0;}运行即可看到如下结果:咦,这不是win32程序么,你小子忽悠我?~O(∩_∩ 阅读全文

posted @ 2013-09-27 20:48 Alberl 阅读(59094) 评论(20) 推荐(3) 编辑

2013 duilib入门简明教程 -- VS环境配置(2)

摘要: 既然是入门教程,那当然得基础点,因为搜索duilib相关资料时,发现有些小伙伴到处都是编译错误,以及路径配置错误等等,还有人不知道SVN,然后一个个文件手动下载的。其实吧,duilib的定位好像是这样的: 有一定的界面基础,懂MFC、WTL、windows消息机制等等。不然的话,即使环境配置好了,看Demo也绕晕你~\(^o^)/~所以对于没有任何基础的童鞋,请先打好基础,不然学习duilib会走更多歪路,推荐以下资料:书籍:《windows程序设计》教程: 孙鑫视频(这个我只下载了,但没看过,不过评价不错)网站:国际知名网站(国外网站:现在比codeguru好很多了,虽然是英文,但是有图文描 阅读全文

posted @ 2013-09-27 00:58 Alberl 阅读(61940) 评论(32) 推荐(10) 编辑

导航