瞎哔哔:2019碌碌无为,2020不重蹈覆辙。

曲径通幽

duilib源码剖析 day7 duilib绘图顺序

duilib源码剖析 day7 duilib绘图顺序

阿虚 2年前 (2018-04-03) 526浏览 0评论

.      在任意控件Get属性中下断点后刷新一下界面即可触发WM_PAIN消息,在观察函数调用栈duilib中绘图是在CControlUI::DoPaint()函数中并且给出了绘图顺序// 绘制循序:背景颜色->背景图->状态图-&g...

duilib源码剖析 day6 Notify消息过程

duilib源码剖析 day6 Notify消息过程

阿虚 2年前 (2018-03-15) 745浏览 0评论

.      Notify的消息过程很好调试只需要在Notify内下一个断点,点下按钮就能得到完整的调用过程。 .      调用栈为从下往上的一个过程,最先是从CWndShadow::ParentProc()开始到CFrameWindowWnd::...

duilib源码剖析 day4 属性和控件是如何组装存储的

duilib源码剖析 day4 属性和控件是如何组装存储的

阿虚 2年前 (2018-03-11) 572浏览 0评论

属性的解析和存储 .      解析属性的逻辑是在CDialogBuilder:: Create()的for中。解析方式没有自行脑补的那么高深,完全就是通过字符串判断来做解析的。通过字符串比较出设置的属性和值然后调用API函数进行设置。 .     ...

duilib源码剖析 day3 WM_CREATE干了什么

duilib源码剖析 day3 WM_CREATE干了什么

阿虚 2年前 (2018-03-05) 870浏览 0评论

.      在WM_CREATE事件中一共12行代码,先看前三行干啥了。 .      第一行是调用的CPaintManagerUI初始化功能,这个函数负责Remove一些内部东西和设置参数传递进去的窗口句柄,以及创建一个DC。移除什么东西看名字大...

duilib源码剖析 day2 pFrame->Create()做了什么

duilib源码剖析 day2 pFrame->Create()做了什么

阿虚 2年前 (2018-03-01) 633浏览 1评论

.      今天分析第五行代码pFrame->Create()做了什么。 .      此处下断点后F11跟进可以看到Create函数是基类CWindowWnd的成员函数。这个函数并只有6行代码。 .      在1~2行代码GetSuper...

duilib源码剖析 day1 CWindowWnd和CPaintManagerUI

duilib源码剖析 day1 CWindowWnd和CPaintManagerUI

阿虚 2年前 (2018-03-01) 779浏览 0评论

.      调试工程TestApp1从WinMain开始。删除掉不必要的就可以开始F10大法了。 .      从WinMain1~2行调用的是的两个静态成员变量。 .      接下来是3~5行代码 .      接下来看到开始new程序的界面类...

STL自问自答之list

STL自问自答之list

阿虚 2年前 (2017-10-07) 555浏览 0评论

.      使用list需要包含头文件<list>,实际list实现是存放在<stl_list.h>当中。 list有哪些操作 通过构造函数插入 插入函数 移除函数 其他list管理函数 list迭代器操作 list的内存管...

STL自问自答之vector

STL自问自答之vector

阿虚 2年前 (2017-09-03) 619浏览 0评论

.     需要使用vector需要包含<vector>头文件,<vector>里面只是包含其他几个头文件vector的真正实现实在<stl_vector.h>当中。其它的头文件分别为:<stl_algoba...

STL迭代器手札

STL迭代器手札

阿虚 2年前 (2017-09-02) 519浏览 0评论

利用模板来推倒函数返回值 .      T是模板参数,编译器不认识T,同时也并不知道T::value_type代表的是什么。typename告诉编译器这是一个行别。 偏特化,对指针和基础类型做处理 STL迭代器类型 .      如果希望兼容STL迭...