MFC Workshop: Intro to the Document/View Architecture
What is Doc/View? • The central concept to MFC • Provides an easy method for saving or archiving objects • Takes the pain out of printing - uses the same code that’s used to draw to the screen • A possible downfall for apps that want MFC, but not Doc/View
Application Framework
The Document • Derived from CDocument • Controls application data – provides a generic interface that encapsulates data
• Loads and stores data through serialization (saving objects to disk)
The View • Attached to the document • Acts as an intermediary between the document and the user • Derived from CView • Document/View Relationship is One-toMany. – Data can be represented multiple ways
The Main Frame Window • The main, outermost window of the application • Contains the views in its client area • Displays and controls the title bar, menu bar, system menu, borders, maximize and minimize buttons, status bar, and tool bars
The Application Object • We have already discussed CWinApp – Calls WinMain, contains main thread, initializes and cleans up application, and dispatches commands to other objects
• In Doc/View it manages the list of documents, and sends messages to the frame window and views
SDI or MDI? • SDI - Single Document Interface – Notepad
• MDI - Multiple Document Interface – Word, Excel, etc.
AppWizard and ClassWizard • AppWizard is like the Wizards in Word – Gives a starting point for an application
• Derives the four classes for you – SDI, MDI
(even dialog, or non-Doc/View)
• ClassWizard helps you expand your AppWizard generate application – ex. Automatically generates message maps