| Preface | p. v |
| Basic Concepts | |
| Background | p. 1 |
| Getting Started with Visual C++ | p. 3 |
| A First Program | p. 6 |
| Exploring the Project Folder | p. 13 |
| Modifying the HelloProject | p. 16 |
| Creating a "Release" Version | p. 20 |
| Exploring the "Hello" Sample Programs | p. 22 |
| The Hello 10 program | p. 24 |
| Adding a clear screen function | p. 25 |
| Accepting input into the Hello example | p. 26 |
| Performing Simple Calculations | p. 28 |
| Simply adding | p. 29 |
| Including an Add subroutine | p. 30 |
| Running repeated additions | p. 31 |
| Compounding interest | p. 33 |
| Exercises | p. 35 |
| Arrays, Pointers and Structures | |
| Working with a One-Dimensional Array | p. 37 |
| Using a Pointer for a One-Dimensional Array | p. 40 |
| The basic pointer concept | p. 40 |
| The pointer concept for a one-dimensional array | p. 42 |
| Programming with a pointer for the one-dimensional array | p. 44 |
| A vector summing function with pointers | p. 46 |
| Working with a Two-Dimensional Array | p. 48 |
| Pointing to a Two-Dimensional Array | p. 50 |
| A matrix pointer program | p. 51 |
| Matrix multiplication with pointers | p. 53 |
| Structures | p. 56 |
| A first example of a data structure | p. 57 |
| Further exploring the structure AddData | p. 59 |
| Pointing to a structure | p. 61 |
| An array of structures | p. 63 |
| Exercises | p. 65 |
| Introducing Classes and Objects | |
| A First Example of C++ Classes | p. 67 |
| Variations on the Rectangles Program | p. 71 |
| Using Separate Files | p. 73 |
| Another arrangement with separate files | p. 76 |
| Multiple Classes | p. 77 |
| An Example of Derived Classes | p. 81 |
| Using a pointer array with derived classes | p. 84 |
| Simulating the Visual C++ "Application Wizard" | p. 86 |
| The DocView project | p. 87 |
| The document pointer | p. 91 |
| Using "Get" functions | p. 93 |
| Using objects as member variables in a document | p. 95 |
| Exercises | p. 98 |
| Beginning Windows Programming | |
| A Blank Project | p. 102 |
| Exploring BlankProject | p. 106 |
| The BlankProject files | p. 108 |
| A First Windows Project | p. 110 |
| Receiving Keyboard Inputs | p. 115 |
| Creating the OnKeyDown message handler | p. 117 |
| Code for the OnKeyDown function | p. 119 |
| Revision of the KeyStrike Program | p. 121 |
| Coding for KeyStrikeMv | p. 125 |
| Using the Document Class for Storing the "Key" | p. 126 |
| Exercises | p. 131 |
| Basic Graphics | |
| Drawing with the Mouse | p. 133 |
| Saving the Drawn Image | p. 138 |
| Creating member variables for SimpleDraw | p. 139 |
| Adding the pen and drawing | p. 141 |
| Drawing with Rubber-Banding | p. 145 |
| Moving an Image - Simple Forms of Animation | p. 149 |
| Movement by mouse inputs | p. 151 |
| Movement by keyboard input | p. 153 |
| Including Circles | p. 155 |
| Drawing and storing the circles | p. 155 |
| Controlling the drawing mode | p. 158 |
| Snap-to-Grid and Saving Data to Files | p. 162 |
| Saving drawing data in a file | p. 165 |
| Printing a Full Size Drawing | p. 167 |
| Carrying out the coordinate changes | p. 169 |
| Exercises | p. 172 |
| Introducing Windows Tools | |
| A First Look at Resource Editing | p. 175 |
| Cleaning up the drop down menus | p. 176 |
| Cleaning up the toolbar | p. 178 |
| Editing the "About" dialog | p. 179 |
| Installing "Delete Line" as an edit command | p. 184 |
| Including accelerator keys | p. 188 |
| Adding an Item to the Menu Bar (Version 2.0) | p. 190 |
| Adding a Drop Down Menu for Color Selection (Version 3.0) | p. 194 |
| Providing a functional connection to the menu items | p. 197 |
| Providing check marks | p. 199 |
| Adding Toolbar Buttons (Version 4.0) | p. 202 |
| Creating and Using a Dialog Window (Version 5.0) | p. 207 |
| Preparing for line width adjustment | p. 207 |
| Creating a menu item for the dialog window | p. 208 |
| Developing the dialog window for line width | p. 210 |
| Code for the function OnLinedialogLinewidth | p. 214 |
| Exercises | p. 217 |
| More Adventures with Windows Tools | |
| SnapDraw (Version 0.0) | p. 219 |
| Customizing the SnapDraw icons | p. 222 |
| First Revision of SnapDraw (Version 1.0) | p. 225 |
| Grid Size Adjustment and the "OnSize" Function (Version 2.0) | p. 230 |
| Creating the menu item "Grid Size" and its function "OnGridSize" | p. 230 |
| Creating the dialog window "Set Grid Size" | p. 232 |
| Programming the function "OnGridSize" | p. 235 |
| Making use of m_VGrid and m_HGrid | p. 236 |
| The OnSize function | p. 238 |
| Using Radio Control Buttons (Version 3.0) | p. 240 |
| The programming changes | p. 241 |
| Creating the radio button dialog | p. 242 |
| Preparing code for the dialog | p. 246 |
| Scrolling with Multiple Documents (Version 4.0) | p. 248 |
| Writing Output Files in Text Format (Version 5.0) | p. 251 |
| Installing the File Format item on the menu bar | p. 252 |
| Adding code | p. 253 |
| Exercises | p. 257 |
| Classes, Objects and Animation | |
| Adding a Class to an MFC Application | p. 259 |
| A Class for Two-Dimensional Shapes | p. 264 |
| Example use of the class C2DShapes | p. 270 |
| Forming Other Shapes Classes | p. 272 |
| A Planet Simulation | p. 277 |
| A Simple Robot Animation | p. 282 |
| The robot model | p. 283 |
| Displaying the robot | p. 287 |
| Positioning and orienting the robot parts | p. 287 |
| Exercises | p. 290 |
| Classes for Graphs, Plotting and Calculations | |
| Developing Classes for Graphs and Curves | p. 293 |
| Displaying a graph | p. 297 |
| The CCurves class | p. 299 |
| Plotting in the CGraphs class | p. 300 |
| Operation of the Grapher Program | p. 301 |
| Working with an Array of Graphs | p. 304 |
| Adding Graphs and Text to the Planet Simulation | p. 307 |
| The class CTextBoxes | p. 308 |
| Modifying the planet simulation | p. 309 |
| Color Contour Plotting | p. 313 |
| Storing the array data | p. 315 |
| Using color quantitatively | p. 316 |
| A function for color plotting | p. 319 |
| Using the plotting tools | p. 322 |
| One Last Graphing Example | p. 324 |
| Organization of the program | p. 326 |
| Preparing the data | p. 328 |
| Generating the display | p. 331 |
| Exercises | p. 332 |
| Index | p. 335 |
| Table of Contents provided by Ingram. All Rights Reserved. |