Foreword | p. xxiv |
Introduction | p. 1 |
Core MFC | p. 5 |
The MFC Architecture | p. 7 |
A Brief History of MFC | p. 8 |
The MFC Class Hierarchy | p. 13 |
Summary | p. 48 |
MFC Dialogs, Controls, and Data Interaction | p. 49 |
Creating an Application | p. 50 |
Modifying the Application | p. 57 |
ToolTips | p. 71 |
Dialog Data Exchange | p. 72 |
Using Standard Dialog Boxes | p. 74 |
Summary | p. 77 |
The Windows Common Controls | p. 79 |
Initializing and Using the Common Controls | p. 80 |
Notifications for Windows Common Controls | p. 81 |
Hot Key Controls: Class CHotKeyCtrl | p. 85 |
Spin Controls: Class CSpinButtonCtrl | p. 88 |
Slider Controls: Class CSliderCtrl | p. 95 |
Progress Bar Controls: Class CProgressCtrl | p. 105 |
Image Lists: Class CImageList | p. 107 |
List View Controls: Class CListCtrl | p. 110 |
List View Items and Subitems | p. 114 |
Tree View Controls: Class CTreeCtrl | p. 120 |
Tab Controls: Class CTabCtrl | p. 125 |
Animate Controls: Class CAnimateCtrl | p. 131 |
Rich Edit Controls: Class CRichEditCtrl | p. 135 |
Summary | p. 146 |
Painting, Device Contexts, Bitmaps, and Fonts | p. 147 |
Device Contexts | p. 148 |
The Graphics Device Interface | p. 149 |
MFC Device Context Classes | p. 150 |
Windows Graphic Objects | p. 158 |
GDI Coordinate Systems | p. 165 |
Vector Graphics | p. 167 |
Fonts and Text | p. 184 |
Sample Program: Vector Graphics and Text Methods (VECTEXT1.EXE) | p. 194 |
Raster Graphics | p. 196 |
Bitmap Resources | p. 203 |
Sample Program: Exploring Bitmap Resources (BITMAP1) | p. 206 |
Summary | p. 210 |
Custom Control Development | p. 213 |
Window Classes Versus C++ Classes | p. 214 |
A Validating Edit Control | p. 215 |
The Clock Static Control | p. 217 |
The Hyperlink Control | p. 225 |
Advanced Custom Control Topics | p. 237 |
Summary | p. 240 |
The MFC Application Object, Message Routing, and Idle Processing | p. 241 |
The MFC Application Object | p. 242 |
Message Routing, Message Maps, and Message Categories | p. 259 |
Idle Processing | p. 266 |
The Splash Screen Component | p. 270 |
Summary | p. 271 |
Documents, Views, and Applications That Use Them | p. 273 |
The Document/View Architecture | p. 275 |
Documents, Frames, and Views | p. 276 |
Creating New Documents | p. 280 |
Views | p. 285 |
Summary | p. 299 |
Extending the User Interface | p. 301 |
Responding to the User | p. 302 |
User Interfaces and AppWizard | p. 309 |
Extending Menus | p. 310 |
Putting Control Bars to Use | p. 314 |
Updating the User Interface | p. 324 |
Property Sheets and Wizards | p. 326 |
Splitting a View | p. 340 |
Summary | p. 343 |
Printing | p. 345 |
Printing Fundamentals | p. 346 |
Printing with MFC | p. 347 |
Printing and GDI Mapping Modes | p. 352 |
WYSIWYG Printing | p. 354 |
Pagination | p. 361 |
Stopping and Aborting Print Jobs | p. 367 |
Summary | p. 369 |
MFC and COM Programming | p. 371 |
COM | p. 373 |
A Little History | p. 374 |
Interfaces, Objects, and Methods | p. 375 |
Servers, Clients, and Classes | p. 382 |
The COM Runtime Environment | p. 384 |
Marshaling and Threading | p. 386 |
COM, OLE, and Automation | p. 390 |
Persisting COM Data | p. 393 |
Identifying COM Data (Monikers) | p. 396 |
Transferring Data | p. 397 |
DCOM | p. 399 |
Some Important Information | p. 405 |
Further Reading | p. 407 |
Summary | p. 408 |
COM and MFC | p. 409 |
Understanding the Afx Global Functions | p. 410 |
Reviewing the OLE Macros | p. 420 |
MFC and the OLE Class Categories | p. 434 |
Summary | p. 448 |
MFC OLE Servers | p. 449 |
Document Servers | p. 450 |
Server Types | p. 451 |
Document Server Design | p. 452 |
Building an Active Document Server | p. 462 |
Automation Servers | p. 465 |
IDispatch | p. 467 |
IDispatch-Derived Interface in ODL | p. 467 |
Calling Methods Through IDispatch | p. 469 |
Dispinterfaces Differ from Interfaces | p. 471 |
Accessing Automation Servers in C++ Through IDispatch | p. 471 |
Dual Interfaces | p. 472 |
The Variant | p. 473 |
An Automation Server Using MFC | p. 476 |
Summary | p. 483 |
MFC OLE Clients | p. 485 |
IDispatch and Its Place in Automation | p. 486 |
Interface Definition for Automation Servers | p. 486 |
MFC and Automation | p. 491 |
Building a Controller | p. 496 |
Summary | p. 517 |
MFC ActiveX Controls | p. 519 |
Development Strategy | p. 521 |
Control Development | p. 523 |
Two Faces of a Control | p. 526 |
Subclassing a Control | p. 527 |
Component Categories | p. 528 |
Methods, Properties, and Events | p. 530 |
Property Pages | p. 535 |
Component Registration | p. 538 |
COM Object Subkeys | p. 539 |
Building an MFC Control | p. 540 |
Interface Definition | p. 543 |
A Quick ATL Port | p. 553 |
Summary | p. 559 |
MFC ActiveX Control Containers | p. 561 |
Active Document Container | p. 562 |
OLE Controls | p. 571 |
Summary | p. 588 |
Using MFC and ATL | p. 589 |
What Is ATL and Why Is It Important for Programming in MFC? | p. 590 |
Helpful ATL COM Support for MFC Applications | p. 591 |
Advanced ATL Support for MFC Applications | p. 604 |
Summary | p. 623 |
Scripting Your MFC Application | p. 625 |
Scripting Basics | p. 626 |
Object Models | p. 637 |
Implementing a Scripted Application | p. 639 |
Summary | p. 651 |
MFC Database Programming | p. 653 |
MFC Database Processing | p. 655 |
Relational Database Concepts | p. 656 |
Storing and Retrieving Data | p. 660 |
Database Communication Mechanisms | p. 663 |
ODBC/MFC | p. 665 |
DAO | p. 677 |
Summary | p. 684 |
Advanced Database Support | p. 685 |
The COM Approach | p. 686 |
OLE DB Consumers Using the ATL Wrapper Classes | p. 687 |
Using the ADO C++ Interfaces | p. 708 |
Summary | p. 727 |
MFC Utility Classes | p. 729 |
Strings and Collections | p. 731 |
Strings and String Classes | p. 732 |
Collections | p. 741 |
The UNL_MultiEd Application | p. 749 |
An STL Approach | p. 754 |
Summary | p. 755 |
File I/O and MFC | p. 757 |
The CFile Class | p. 758 |
Inside the CFile Class | p. 761 |
The CFileDialog Class | p. 770 |
The User-Defined CFileDialog Class | p. 772 |
Practical Usage of CFile and CFileDialog | p. 773 |
A Classical Approach | p. 778 |
Summary | p. 780 |
Exceptions | p. 781 |
Exceptions--What Are They Good For? | p. 782 |
Types of Exceptions | p. 785 |
Structured Exception Handlers | p. 786 |
Nesting of Structured Exception Handlers | p. 788 |
Raising Structured Exceptions | p. 789 |
Cleaning Up After an Exception | p. 790 |
C++ Exceptions | p. 792 |
Defining a C++ Exception Class | p. 795 |
MFC Exceptions | p. 797 |
Deriving Your own MFC-Compliant Exception Objects | p. 808 |
Deleting Exceptions | p. 810 |
Using MFC Exception Macros | p. 812 |
Mixing Exceptions | p. 813 |
Summary | p. 814 |
MFC and the Web | p. 815 |
MFC and DHTML | p. 817 |
DHTML, MSIE, and the Internet | p. 818 |
Using the Internet Explorer Web ActiveX Control | p. 819 |
Using DHTML | p. 829 |
Summary | p. 850 |
CSocket Programming | p. 851 |
How Do Network Communications Work? | p. 852 |
Winsock and MFC | p. 855 |
Building a Networked Application | p. 869 |
Summary | p. 884 |
WinInet Programming | p. 885 |
Web Application Protocols and WinInet | p. 886 |
Internet Session Basics | p. 890 |
Application-Level Functionality | p. 909 |
Summary | p. 933 |
ISAPI Extensions | p. 935 |
The Foundation | p. 936 |
From There to Here | p. 951 |
From Get to Post | p. 957 |
Adding Some Form Elements | p. 959 |
Other Form Input Elements | p. 965 |
Summary | p. 968 |
MAPI and MFC | p. 969 |
The Messaging Application Programming Interface | p. 970 |
Two Higher-Level Alternatives: Simple MAPI and CMC | p. 971 |
Limited MAPI Functionality in MFC | p. 975 |
The CDocument Connection | p. 975 |
Sample Program: MAPI1.EXE | p. 981 |
Summary | p. 985 |
TAPI and MFC | p. 987 |
Overview | p. 988 |
History of TAPI | p. 995 |
Using Assisted Telephony | p. 999 |
Using Basic Telephony | p. 1002 |
Summary | p. 1019 |
MFC and Graphics Programming | p. 1021 |
MFC and OpenGL | p. 1023 |
What Is OpenGL? | p. 1024 |
Graphics Boot Camp | p. 1025 |
OpenGL Boot Camp | p. 1032 |
Minimal OpenGL Program and a Custom View | p. 1042 |
2D and 3D Models | p. 1055 |
Light | p. 1064 |
Texture Mapping | p. 1069 |
Special Effects | p. 1073 |
Summary | p. 1075 |
MFC and DirectX | p. 1077 |
What Is DirectX? | p. 1078 |
DirectX Basics | p. 1081 |
DirectDraw Basics | p. 1083 |
Using DirectDraw in Practice | p. 1102 |
Summary | p. 1116 |
Multimedia and MFC | p. 1117 |
Multimedia Fundamentals | p. 1118 |
The DirectX Media Player Control | p. 1119 |
Using the Media Player Control | p. 1122 |
Playing Sound | p. 1131 |
Summary | p. 1155 |
Advanced MFC | p. 1157 |
Inside the Registry | p. 1159 |
Registry Usage | p. 1161 |
The Registry Structure | p. 1163 |
Programmatic Control of the Registry | p. 1164 |
The Registry Sample Application | p. 1167 |
A Word About Wrapping the Registry Functions | p. 1176 |
A Word About Installation | p. 1177 |
Summary | p. 1178 |
Writing and Using DLLs | p. 1179 |
Advantages of DLLs | p. 1180 |
Inside an AFX DLL | p. 1181 |
Exporting Classes, Functions, and Data | p. 1182 |
Other DLL Issues | p. 1192 |
Summary | p. 1197 |
Creating Custom Wizards | p. 1199 |
Property Sheets and Property Pages | p. 1200 |
Creating a Wizard | p. 1203 |
Sample Program: Off to See the Wizard (WIZARD1.EXE) | p. 1205 |
Summary | p. 1220 |
Index | p. 1221 |
Table of Contents provided by Syndetics. All Rights Reserved. |
The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.
The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.