-------MFC的凌乱笔记-------
这几天贴的大多都是以前写的东西,凌乱不堪。
CControlBar::PreCreateWindow()构造CControlBar基类的共性 CStatusBar等的基类,派生类在Create()函数中会间接或直接调用PreCreateWindow()
基类也可重载PreCreateWindow()在PreCreateWindow()中可进一步修改风格
CStatusBar()中的一些概念:工具条的所属窗口,描述工具条按钮结构的大小,泊位,控制窗口创建(ToolBar属于一个窗体,首先创建的是窗口风格等),复制与各个位图对应的命令ID到数组-添加到工具栏-指定各个按钮对应的ID(在前面已经将ID加入到同一个数组)-设置按钮的位图
RT_TOOLBAR类型的资源包含:工具条位图的版本,宽度,高度,个数,各个位图对应的命令ID。工具条的位图列表,函数的参数1是一个数组,数组的各个元素就是命令ID;参数2是按钮的个数。首先,SetButtons删除工具条原来的按钮;然后,添加新的按钮,若命令ID数组非空,则把每一个按钮和命令ID对应并分配位图索引,否则设置空按钮并返回FALSE;最后,记录按钮个数。
添加到父窗口的工具栏列表中,
工具条维护两个列表:字符串,者位图
3种控制窗口的创建流程: 控制窗口的创建CControlBar::PreCreateWindow()
查找并确认按钮位图、字符串等资源的位置---复制与各个位图对应的命令ID到数组---
----------------------
pDC->GetClipBox(&rect); // 擦掉所要画的区域
pDC->PatBlt(rect.left, rect.top, rect.Width(),
rect.Height(), PATCOPY);
---------------------------