zoukankan      html  css  js  c++  java
  • 基于MFC的单文档,多文档,对话框应用程序

    从类的角度区分

    基于对话框(3个类):

    • CAboutDlg
    • 程序名App
    • 程序名Dlg

    单文档(5个类):

    • CAboutDlg
    • CMainFrame
    • 程序名App
    • 程序名Doc
    • 程序名View

    多文档(6个类):

    • CAboutDlg
    • CMainFrame
    • 程序名App
    • 程序名Doc
    • 程序名View
    • CChildFrame

     -------------------------------------------------------------------------------

    多文档

    CAboutDlg(“关于”对话框)

          CAboutDlg()

          DoDataExchange(CDataExchange* pDX)

    CChildFrame(子框架类)

          AssertValid()

          CChildFrame()

          ~CChildFrame()

          Dump(CDumpContext& dc)

          PreCreateWindow(CREATESTRUCT& cs)

    CMainFrame(主框架类)

          AssertValid()

          CMainFrame()

          ~CMainFrame()

          Dump(CDumpContext& dc)

          OnCreate(LPCREATESTRUCT lpCreateStruct)

          PreCreateWindow(CREATESTRUCT& cs)

          CStatusBar  m_wndStatusBar;

          CToolBar    m_wndToolBar;

    CMyApp(应用程序类)

          CMyApp()

          InitInstance()

          OnAppAbout()

    CMyDoc(文档类)

          AssertValid()

          CMyDoc()

          ~CMyDoc()

          Dump(CDumpContext& dc)

          OnNewDocument()

          Serialize(CArchive& ar)

    CMyView(视图类)

          AssertValid()

          CMyView()

          ~CMyView()

          Dump(CDumpContext& dc)

          GetDocument()

          OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)

          OnDraw(CDC* pDC)

          OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)

          OnPreparePrinting(CPrintInfo* pInfo)

          PreCreateWindow(CREATESTRUCT& cs)

    Golbals(全局)

        theApp      

    -------------------------------------------------------------------------------

    单文档

    CAboutDlg(“关于”对话框)

          CAboutDlg()

          DoDataExchange(CDataExchange* pDX)

    CMainFrame(主框架类)

          AssertValid()

          CMainFrame()

          ~CMainFrame()

          Dump(CDumpContext& dc)

          OnCreate(LPCREATESTRUCT lpCreateStruct)

          PreCreateWindow(CREATESTRUCT& cs)

          CStatusBar  m_wndStatusBar;

          CToolBar    m_wndToolBar;

    CMyApp(应用程序类)

          CMyApp()

          InitInstance()

          OnAppAbout()

    CMyDoc(文档类)

          AssertValid()

          CMyDoc()

          ~CMyDoc()

          Dump(CDumpContext& dc)

          OnNewDocument()

          Serialize(CArchive& ar)

    CMyView(视图类)

          AssertValid()

          CMyView()

          ~CMyView()

          Dump(CDumpContext& dc)

          GetDocument()

          OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)

          OnDraw(CDC* pDC)

          OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)

          OnPreparePrinting(CPrintInfo* pInfo)

          PreCreateWindow(CREATESTRUCT& cs)

    Golbals(全局)

        theApp

    -------------------------------------------------------------------------------

    对话框

    CAboutDlg(“关于”对话框)

          CAboutDlg()

          DoDataExchange(CDataExchange* pDX)

    CMyApp(应用程序类)

          CMyApp()

          InitInstance()

    CMyDlg(对话框类)

          CMyDlg(CWnd* pParent /*=NULL*/)

          DoDataExchange(CDataExchange* pDX)

          OnInitDialog()

          OnPaint()

          OnQueryDragIcon()

          OnSysCommand(UINT nID, LPARAM lParam)

          HICON m_hIcon;

    Golbals(全局)

        theApp

    -------------------------------------------------------------------------------

    CXXXApp是应用程序类,负责程序的启动和结束
    CXXXDlg是主对话框类,程序的主界面。

    单文档就是一个窗口只能处理一个文档,多文档就是同时可以处理多个,共享工具栏,菜单栏什么的,对话框就是一个提示用户进行选择或者确认的窗体。对话框模板适合于做交互界面,单文档模板适合于做文件处理,多文档模板适合于做多文件处理。不过,还是没法明确这个问题。

    对话框模板适合于做交互界面
    单文档模板适合于做文件处理
    多文档模板适合于做多文件处理

    单文档程序打开多个文件会产生多个进程;
    多文档程序打开多个文件只需一个进程。

    单文档只能进行一份文档或图片的操作,就是你不能同时在一个程序打开两个文件
    多文档可以用多个窗口显示不同的信息,进行不同的任务,有多个视图环境,可以同时操作多个文件

  • 相关阅读:
    洛谷1020导弹拦截
    bzoj2467生成树
    qhfl-2 ContentType组件
    qhfl-1 跨域
    drf8 解析器
    drf7 分页组件
    drf6 权限和频率控制组件
    Flex 布局教程:语法篇
    2017年最新cocoapods安装教程(解决淘宝镜像源无效以及其他源下载慢问题)
    git命令行
  • 原文地址:https://www.cnblogs.com/MrYuan/p/5660948.html
Copyright © 2011-2022 走看看