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-to-
Many.
– 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