MFC学习笔记:ClassWizard
按钮->ClassWizard ->add 成员变量
|->add 成员函数
属性---唯一的资源ID。
函数setSel();repalceSel();onOk()(调用派生类之中的);
***************************************************************************************************************************************
菜单:资源ID DISCARDABLE,级联菜单
POPUP
MENUITEM
MENUITEM SEPARATOR 分隔线,用来区分一组菜单项;
添加一个MENU到已经知道的程序中:
1、"insert"->"resource"->自己添加的资源
2、为定制好的菜单关联一个类
(1)classwizard->"seleceting an existing class"(adding a class窗口)
(2)选择已经存在的窗口对话框类,看到该类中“objec IDs”中增加了自己定制的资源的ID;
(3)关联菜单资源到主窗口中:“ResourceView”->ID-**_DIALOG->"Properties">>"Menu"中选择自己添加的对话框资源
由此自己添加的菜单资源和主窗口的ID_**_DIALOG建立了联系,接下来为每个按钮添加消息映射和命令处理函数。
********************************************************************************************************
MFC应用之中只有一个框架窗口“FrameWnd”,然后创建文档模板(Doc),然后由文档模板创建文档实例和视图实例(view),一般只需对文档和视图进行操作,MFC设计
文档---视图结构本意就是让开发者将注意力放在完成任务的上,而从界面编制中解放出来。
Doc任务负责对数据管理维护,相当于数据容器,数据被保存在Doc类的成员变量之中,然后进行文档类的串行化(Serialize),大多数情况之下需要重写serialize成员函数实现文档的串行化。
void CMinSdiDoc::Serialize(CArchive& ar) { if(ar.IsStoring()) {//storing code} else {//loading code} }serialize 成员函数带有一个CArchive的类型的参数,打开一个与文件相关联的CArchive对象,利用IsStoring 判读是读还是写?
View可以间直接访问Doc类中的数据,显示到屏幕之上,视图类接收数据,将之更新到Doc类之中。通过调用CView类的成员函数GetDocument获得指向文档的指针。
每个文档可以有多个视图,每个视图只能对应于一个确定的文档。
CView之中的重要成员函数,OnDraw()屏幕重绘时调用,保证正确显示;
OnUpdateAllViews()通过调用该函数使文档的各个视图得到同步的正确显示。