04_MFC知识点总结(三)

一、文档视图结构


文档类(CDocument):存储加载(读写)数据
截图类(CView):显示和修改数据

1)单文档
a)文档模板:把框架窗口、文档、视图关联在一起
b)单文档(CDocument):
        OnNewDocument(),第一次新建窗口调用,后面每次“新建”,自动调用次函数
        DeleteContents(),做一些释放资源的操作,后面按“新建”,新建前先调用此函数
c)框架类可以认为是视图类的容器

2)各类相关访问
    a)在类视图,如何访问文档对象指针 CView::GetDocument
    CDocument* GetDocument() const;
    


二、文档序列化(二进制操作文件CArchive)相当于Qt QDataStorm


序列化:以二进制方式写文件
反序列化:以二进制方式读文件

1)写文件
    a)创建文件对象 CFile
    b)以写方式打开CFile::Open
    c)创建序列化对象,并且和文件关联在一起CArchive
        CArchive::Close
    e)往数据流写数据(相当于往文件写数据)
    f)关闭文件CFile::Close

2)读文件
    a)创建文件对象 CFile
    b)以读方式打开CFile::Open
    c)创建序列化对象,并且和文件夹关联在一起 CArchive
        CArchive::load从文档文件装载数据。 CFile只读
    d)往数据流读数据(相当于往文件读数据)
        ar >> a >> b >> c
    e)断开数据流和文件的关联 CArchive::Close
    f)关闭文件 CFile::Close

三、文档视图案例


1)文档类自带序列化操作函数 Serialize()
    void 
    
2)学生管理xit
    a)定义一个学生类Stu
    b)文档类存储数据,视图类修改和显示数据
        1)从尾部添加元素 CList::AddTail
        2)获得此列表尾部元素的位置 CList::GetTailPosition
        3)获取上一个元素 CList::GetPrev
        4)获取下一个元素 CList::GetNext
        5)获取当前首元素位置 CList::GetHeadPosition
        6)获取最后一个元素位置 CList::GetTailPosition
        7)获取指定元素位置 CList::GetAt
        8)移除头结点元素(并没有释放空间)CList::REmoveHead
    c)视图的基类是 CFormView
    d)重写文档类 DeleteContents(),做一些释放资源的操作,每次按“新建”,新建前先调用此函数

四、数据库编程


1)安装mysql
    a)安装MySQL服务器
    b)MySQL odbc驱动
2)odbc层次图
    a)odbc一套标准接口(内部通过sql语句操作数据库,用户就算是不懂sql语句也可以借助odbc)
    b)数据源

3)如何创建数据源(MySQL只能是快照)
    a)快照(Snapshot)记录集:每次操作更新查询后才更新
        1)DoFiledExchange()自动把数据库的字段和变量相关联
        2)GetDefaultConnect()获取数据库连接信息
        3)GetDefaultSQL()获取数据库连接的表
    b)动态(Dynaset)记录集:每次操作自动更新(添加记录外)
        1)OnIitialUpdata()主要作初始化功能

4)应用程序情况
    a)CRocordset的子类,主要是对数据库进行相应操作
    b)CFormView的子类,显示数据库的视图
        1)OnIitialUpdata()主要作初始化功能

猜你喜欢

转载自blog.csdn.net/weixin_39036700/article/details/82702643