Home

Courseware

Course
Listing

Instruction

Philosophy

Clients

Publications

Résumé

Accelerated Introduction to C++ and MFC
(For C Programmers Only)


Course Outline:

Introduction and Overview of C++
Two Approaches to Programming
Procedural Programming
Object-Oriented Programming
Goals of the C++ Language
Compatibility
Optimization
Portability
Promotion: A Discipline for Reuse
Encapsulation and Data Hiding
Restaurant Programming
Semantically Consistent Polymorphism
Semantically Disparate Polymorphism

Data Abstraction
Reusable Software
Complexity
Software Architecture
Problem domain -> Software Domain
Encapsulating human expertise
Portability, Maintainability, Testability
Organizing Software
Package Data and Operations

C++ As Better C
Program Structure
Statements
Expressions
Memory Management
Value Semantics

Class User Programming in C++
Types and user-defined types
User-defined types and classes
The concept of reusable software components
Demonstrate reusable software components
Examples that use user-defined types

Class Synthesis for Class Users Part I
Introduction
Value Semantics
Middle Ground
Class Synthesis Using Built-In Data Types
Parameterization
C++ Support for OOAD (Object-Oriented Analysis and Design)
Multiplicity
Aggregation and class synthesis
Inheritance, mix-ins and class synthesis
Collaboration
Delegation

Class Synthesis for Class Users Part II
Containers
Arrays
Multiply dimensioned arrays
Strings
Subscripting
Lvalues and Rvalues
Returning References
Constant arguments
Defining I/O for Containers
Members, Friends & C-Style Function

Hughes Class Library (HCL)

Class Synthesis
Value Semantics with Pointers
Default constructors
Conversion constructors
Copy constructors
Assignment operators
Destructors
Friend, Member & C-Style Functions
Memory Allocation
Static (Global)
Automatic (Local)
Dynamic
Class String

A Preview of Advanced C++ Features
MFC Class Overview
MFC Data Types
MFC Utility Classes
MFC Class Hierarchy
MFC Debugging Support
MFC Application Framework
MFC Container Classes

The Windows Programming Model
Event Driven Applications
The Message Pump
Window Procedures
Windows System Services
Resources

Message Handling
Mouse and keyboard input
Message maps
ClassWizard
Simple Drawing
Capturing mouse input

GDI
CDC Classes & Drawing Functions
GDI Drawing Tools
Pens

Brushes
Fonts
Bitmaps
Icons
Cursors
Coordinate Systems

Menus
Purpose and Design of menus
Building a menu
Handling menu commands
Handling unavailable menu items
Using context menus

Dialogs
Modal vs. Modeless Dialogs
Message Boxes
Custom Dialogs
DoDataExchange and DDX/DDV
Modeless Dialogs

Document/View Architecture
Basis of Document/View Architecture
SDI vs. MDI application styles
Document/View classes
Decoupling document and view
Navigating between the classes

Serialization
Purpose of Serialization
CArchive Objects
Serializing Document Data to/from a CArchive Object
Creating Serializable Classes

MDI and Multiple Views
MDI Architecture
Multiple views
Document templates
Adding new view classes
Launching new views from a window menu

Controls
Using control classes
Using control views

Form Views
CForm View
Creating a form view
Initializing a form view
Handling control messages
Resizing

Splitter Windows
Dynamic splitter windows
Static splitter windows
Using a dynamic splitter window
Using a static splitter window

MFC Database Support
Creating a database
Creating a DAO Database Browser
Creating a ODBC Database Browser

MFC OLE

Demonstrate OLE Embedded Document Server Support
Demonstrate OLE Embedded Document Container Support



Please contact Sieg to arrange for rapid, custom courseware development, or to inquire about his availability to deliver training to your organization: Phone 303-494-5509, Email siegfried@heintze,com.


Siegfried Heintze
(303) 494-5509
www.heintze.com
siegfried@heintze.com


Home ||| Courseware ||| Course Listing ||| Instruction
Philosophy ||| Clients ||| Publications ||| Résumé