Texts | Programming Windows 95, Charles Petzold, Paul Yao, Microsoft Press. Foundations of Visual C++ Programming for Windows 95, Paul Yao, IDG Books |
Tests | 1 take-home programming midterm |
Homework | Handed in on printout, no disks unless specifically asked for. |
Grading | Grading is broken down as follows: Grades are broken down as follows: No 'upgrades' will be permitted for homeworks, or assignments unless previously agreed upon with instructor. No more than two homework Assignments will be accepted from a student on the final day of class. A grade of 'incomplete' must be requested by students two weeks prior to the final exam. A grade of incomplete is granted at the instructors discretion, taking into account the students grade average and ability to complete class assignments. |
Goals | The goal of this class is to take the student from an introduction of Graphical User Interface programming, to an intermediate understanding of the Windows API. The Windows 95 and NT operating systems will be used as a programming model, with differences between 32- and 16-bit programming approaches. The latter part of the class will deal with Rapid Application Development, centralizing study on the Microsoft Foundation Class. |
Session 1: Introduction
Graphical User Interface History
Windows versions
1.0, 2.0, 3.0, 3.1, 3.11, 95, NT Workstation, NT Server
GUI Concepts
Windows
Events
Messages and the Message Queue
Multi-tasking
SDI/MDI
Homework: Enter, compiler, and run the Hello World program
Challenge: Design a C++ class to wrap a basic Windows Application
Session 2: Windows Basics - A Minimum Windows Program in C and C++
Review of Hello World
WinMain
Programming Conventions
Registering and creating windows
Windows Procedures
Message Handling
The Clipboard
Homework: Alter last weeks homework to display a message when user clicks
client area.
Session 3: Menus and Graphics
Menu processing
Adding a menu option
Responding to a menu choice
Enabling/Disabling, and altering the menu at runtime
Graphics
The Graphics Device Context
GDI Drawing functions
Homework: 1) Add a Fileā¦ Exit menu option to last weeks homework
2) Add a menu item that toggles it's own check mark.
3) Change the mouse event so that instead of a message, it displays the
click coordinates
Session 4: Graphics continued
Graphics
Coordinate systems
System Metrics
Fonts
Windows
'Enumerating' functions
Homework: Write a program that lists the available font names to the screen
Challenge: List each font in it's own typeface
Session 5: Dialog Boxes and Messages
Dialog Boxes
Modal and Modeless
Controls
Responding to events
Messages
Control messages
Homework: Create a 'logon' style dialog, with password control
Session 6: Printing
Printing
GDI and the printer
Mapping Modes
Escape statements
Basic reporting
Homework: Create a 2-page report, that prints 1 and a half pages of text.
Session 7: File and memory
File operations
File control
Files as memory and communications streams
Memory
Win16 vs. Win32
Virtual memory
Memory management routines
Homework: Load a text file into memory, and display it.
Challenge: Sort the file
Session 8: Microsoft Foundation Classes
Basics
AppWizard
ClassWizard
Document/View architecture
Application Classes
Window classes
Homework: Generate 'Hello World', using AppWizard and MFC
Midterm assigned - Due next class
Session 9: MFC continued
MFC
On????? Functions
Message Maps
MFC as an API 'wrapper' class
Homework: To be announced
Session 10: MFC View classes
Views
CView vs. CFormView
View and Document interaction
Basic view functions
Homework: Create a calculator program, with a CFormView-derived view
Session 11: MFC Document classes and Menus
Documents
Serialization
Data storage
Menus
Creating with Visual C++
Responding to and handling events
Session 12: MFC and GDI and Events
GDI
OnDraw, in Detail
The CDC object
Mouse and keyboard events
Mouse drag-and-drop operations
Homework: Create the 'scribble' program
Session 13: MFC and Dialog boxes
Dialogs
Creating and invoking
Dialogs as base classes
Dialog interaction
Reusability
Homework: Create the logon dialog. Invoke it as part of your program startup
code.
Session 14: MFC Database and Internet classes
Database
A basic introduction to databases and SQL
ODBC and DAO
CDatabase and CRecordset
Recordset operations
Internet
Socket and internet basics
MFC Classes
Review for final exam
Session 15: Finishing
MFC review and project development
MFC and OCX controls
Final exam