CTA - QC1402
GUI and C/C++ Applications Part 2
This covers advanced programming in C++ for Windows 95 and NT, centering on the Microsoft Foundation Classes (MFC), a popular application frameworks, and the Microsoft ActiveX/Component Object Model (COM) programming model. We will examine ways to create ActiveX / OCX components and ways to use existing components (through MFC and browser scripting languages.) Also, we will look at MFC support for areas such as databases and the Internet. We will also cover new Windows technologies such as DirectX/Direct3D programming for multimedia Windows, and briefly at the future of Windows development using emerging technologies like Java. Along the way, we will also look at advanced C++ language features like templates and structured exception handling.
In lieu of a final project, students are expected to complete 6 (challenging) programming assignments in advanced topics in MFC / C++ programming. (These assignments will be normally due three weeks after they are distributed in-class.)
Mario Giannini, PWindows Programming Programmers Notebook, Prentice Hall.
David Kruglinksi, Programming Visual C++, Fifth Edition, Microsoft Press.
Wieying Chen, ActiveX Programming Unleashed, Sams.net Publishing.
Nigel Thompson, 3D Graphics Programming for Windows 95, Microsoft Press.
· The above books should be available at the Posman's Bookstore at 116th and Broadway (and at other bookstores around the city).
Other Useful Windows References:
Kurt Brockenschmidt, Inside OLE, 2nd ed., Microsoft Press.
Microsoft, OLE Automation Programmer's Reference, Microsoft Press.
Stan Trujillo, Cutting-Edge Direct3D Programming, Coriolis Group Books.
Session 1: Introduction COM, OLE & ActiveX
Visual C++ & MFC 4.2
What is Advanced MFC?
COM, OLE and ActiveX Demystified
Session 2: MFC Document and View File I/O and Streams
SDI vs. MDI applications
Persistence and streams
CArchive and CFile
Saving and retrieving documents
Session 3: Multitasking MFC Classes
Starting and coordinating threads
User and worker threads
Session 4: Templates and MFC Container Classes / The VC++ Standard Library
MFC container support
C++ templates review
MFC non-templatized container classes
MFC templatized container classes
The Standard Library string class
Session 5: Exception Handling and MFC Databases
C++ Structured Exception Handling
MFC Database Classes
Wizard-based database programming
CDatabase and CRecordset
CDAODatabase and CDAORecordset
Programming with table structures in DAO
Session 6: MFC Common Control Classes
Standard MFC Control Classes Reviewed
ListView Controls In-Depth
Sliders and Spin Buttons
Session 7: DirectX -- DirectDraw Programming
Designing your own C++ classes for MFC
Bitmaps, surfaces and animation
Session 8: Midterm
Session 9: Direct3D Programming
Meshes & rendering schemes
Session 10: Designing with ActiveX Controls in MFC
The Visual C++ Component Gallery
OCX's and the Dialog Editor
Viewing OCX classes
A grid sample
Popular OCX controls
Session 11: COM and OLE Automation
DLL's vs. COM
OLE and COM
Creating COM Objects
Session 12: Building ActiveX Controls I
MFC and COleControl
OLE control internals
Sample MFC-based OLE control
Session 13: Building ActiveX Controls II
The ActiveX Template Library
The ActiveX SDK
Session 14: ActiveX on the Web
Java vs. C++
The Future of Windows development
Final Exam (Details TBA)