ebook img

Visual C++ and MFC Programming 2nd Edition PDF

739 Pages·2004·9.53 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Visual C++ and MFC Programming 2nd Edition

Visual C++ and MFC Fundamentals Table of Contents an action creates a document and this document must reside somewhere. Visual C++ and MFC Programming © FunctionX, Inc. 1 Table of Contents Visual C++ and MFC Fundamentals 2 © FunctionX, Inc. Visual C++ and MFC Fundamentals Table of Contents Table of Contents TABLE OF FIGURES...............................................................................................13 CHAPTER 1: INTRODUCTION TO MICROSOFT VISUAL C++...........15 1.1 The Microsoft Visual C++ Environment.....................................................16 1.1.1 Introduction..............................................................................................16 1.1.2 The Integrated Development Environment........................................17 1.1.3 The Title Bar............................................................................................17 1.1.4 The Main Menu.......................................................................................18 1.1.5 The Toolbars............................................................................................21 1.1.6 The Studio Windows..............................................................................23 1.2 Floatable and Dockable Windows................................................................26 1.2.1 Description...............................................................................................26 1.3 Visual C++ Projects and Files.......................................................................27 1.3.1 Creating a New Project..........................................................................27 1.3.2 Creating Files...........................................................................................28 1.3.3 Adding Existing Files to a Project.......................................................29 1.3.4 Adding Classes........................................................................................30 1.3.5 Opening Files...........................................................................................31 1.3.6 Opening Existing Projects.....................................................................33 1.4 Getting Help.....................................................................................................34 1.4.1 Online Help..............................................................................................34 1.4.2 Other Help Types....................................................................................35 CHAPTER 2: INTRODUCTION TO MFC.......................................................37 2.1 The Microsoft Foundation Class Library....................................................38 2.1.1 Introduction..............................................................................................38 2.1.2 CObject, the Ancestor............................................................................38 2.1.3 The Basic Application............................................................................39 2.2 Frames Fundamentals .....................................................................................42 2.2.1 Introduction..............................................................................................43 2.2.2 Reference to the Main Window............................................................44 2.2.3 Introduction to Macros...........................................................................47 2.2.4 Windows Styles.......................................................................................48 2.2.5 Windows Location..................................................................................51 2.2.6 Windows Size..........................................................................................53 2.2.7 Windows Dimensions............................................................................54 2.2.8 Windows Parents....................................................................................57 2.3 Message Boxes.................................................................................................58 2.3.1 Definition.................................................................................................58 2.3.2 Message Box Creation...........................................................................59 2.3.3 Message Box Implementation..............................................................59 2.3.4 The Box’ Message..................................................................................60 2.3.5 The Message’ Title.................................................................................62 2.3.6 Message Box Options............................................................................63 2.3.7 The Message’s Return Value................................................................66 CHAPTER 3: WINDOWS RESOURCES ..........................................................69 © FunctionX, Inc. 3 Table of Contents Visual C++ and MFC Fundamentals 3.1 Introduction to Resources..............................................................................70 3.1.1 Introduction..............................................................................................70 3.1.2 Converting a Resource Identifier.........................................................71 3.2 Icons...................................................................................................................73 3.2.1 Icons Overview.......................................................................................73 3.2.2 Icons Design............................................................................................74 3.3 Menu Fundamentals........................................................................................80 3.3.1 Overview..................................................................................................80 3.3.2 The Main Menu.......................................................................................80 3.3.3 Main Menu Design.................................................................................81 3.4 Toolbars.............................................................................................................85 3.4.1 Overview..................................................................................................85 3.4.2 Creating a Toolbar..................................................................................85 3.5 Accelerators......................................................................................................85 3.5.1 Access Keys.............................................................................................86 3.5.2 Shortcuts...................................................................................................86 3.5.3 Accelerator Table....................................................................................87 3.6 Version Information........................................................................................88 3.6.1 Overview..................................................................................................88 3.6.2 The Version Information Editor...........................................................88 3.7 Cursors..............................................................................................................89 3.7.1 Overview..................................................................................................89 3.7.2 Creating and Using Cursors..................................................................90 3.8 The String Table ..............................................................................................92 3.8.1 Description...............................................................................................92 3.8.2 Creating and Using a String Table.......................................................92 3.9 Other Techniques of Creating Windows.....................................................94 3.9.1 Window Registration and Standard Resources..................................94 3.9.2 Window Registration and Custom Resources....................................95 3.9.3 Frame Loading........................................................................................97 CHAPTER 4: MESSAGES AND EVENTS......................................................101 4.1 Introduction to Messages............................................................................102 4.1.1 Overview...............................................................................................102 4.1.2 A Map of Messages.............................................................................102 4.2 Windows Messages......................................................................................104 4.2.1 Window Creation.................................................................................105 4.2.2 Window's Showing State....................................................................106 4.2.3 Window Activation.............................................................................108 4.2.4 Window Painting.................................................................................112 4.2.5 Window Sizing.....................................................................................114 4.2.6 Window Moving..................................................................................116 4.2.7 Window Destruction...........................................................................119 4.3 Command Messages....................................................................................119 4.3.1 Definition..............................................................................................120 4.3.2 Creating a Command Message..........................................................120 4.4 Keyboard Messages.....................................................................................120 4.4.1 Introduction...........................................................................................120 4.4.2 The Key Down Effect.........................................................................122 4.4.3 The Key Up Effect...............................................................................124 4.5 Mouse Messages...........................................................................................124 4.5.1 Introduction...........................................................................................124 4.5.2 Mouse-Down Messages......................................................................124 4.5.3 The Mouse-Up Messages...................................................................127 4.5.4 The Double-Click Message................................................................129 4 © FunctionX, Inc. Visual C++ and MFC Fundamentals Table of Contents 4.5.5 Mouse Moving.....................................................................................130 4.6 Anytime Messages.......................................................................................130 4.6.1 Introduction...........................................................................................130 4.6.2 Sending Messages................................................................................131 CHAPTER 5: THE DOCUMENT/VIEW ARCHITECTURE....................133 5.1 Overview of the Document/View Architecture.......................................134 5.1.1 Introduction...........................................................................................134 5.1.2 The View...............................................................................................134 5.1.3 The Document......................................................................................134 5.1.4 The Frame.............................................................................................134 5.1.5 The Document/View Approach.........................................................135 5.2 The Single Document Interface (SDI)......................................................136 5.2.1 Overview...............................................................................................136 5.2.2 Creating a Single Document Interface.............................................137 5.3 SDI Improvements.......................................................................................143 5.3.1 SDI Improvements: The Application...............................................143 5.3.2 SDI Improvements: The Document..................................................146 5.3.3 SDI Improvements: The Frame.........................................................150 5.3.4 SDI Improvements: The View...........................................................151 5.4 The Multiple Document Interface (MDI).................................................151 5.4.1 Overview...............................................................................................151 5.4.2 Creating a Multiple Document Interface.........................................154 5.4.3 The Visual C++ AppWizard..............................................................157 5.5 The AppWizard.............................................................................................157 5.5.1 An SDI With AppWizard...................................................................158 5.5.2 An MDI With AppWizard..................................................................161 CHAPTER 6: THE GRAPHICAL DEVICE INTERFACE........................163 6.1 Introduction to the GDI...............................................................................164 6.1.1 The Device Context.............................................................................164 6.1.2 Grabbing the Device Context ............................................................164 6.2 The Process of Drawing..............................................................................165 6.2.1 Getting a Device Context ...................................................................165 6.2.2 Starting a Device Context's Shape....................................................165 6.3 GDI Lines and Shapes.................................................................................167 6.3.1 Lines.......................................................................................................167 6.3.2 Polylines................................................................................................170 6.3.3 Multiple Polylines................................................................................173 6.3.4 Polygons................................................................................................175 6.3.5 Multiple Polygons................................................................................176 6.3.6 Rectangles and Squares......................................................................177 6.3.7 A Rectangle With Edges.....................................................................179 6.3.8 Ellipses and Circles.............................................................................180 6.3.9 Round Rectangles and Round Squares............................................183 6.3.10..Pies.........................................................................................................184 6.3.11..Arcs........................................................................................................185 6.3.12..The Arc's Direction.............................................................................187 6.3.13..Angular Arcs........................................................................................190 6.3.14..Chords...................................................................................................191 6.3.15..Bézier Curves.......................................................................................192 CHAPTER 7: GDI ACCESSORIES AND TOOLS.......................................197 7.1 Colors.............................................................................................................198 © FunctionX, Inc. 5 Table of Contents Visual C++ and MFC Fundamentals 7.1.1 Overview...............................................................................................198 7.1.2 The Color as a Data Type...................................................................199 7.1.3 Color Palettes........................................................................................200 7.2 Drawing With Colors...................................................................................201 7.2.1 Coloring a Pixel....................................................................................201 7.2.2 Rectangles With 3-D Effect...............................................................201 7.2.3 Drawing Text........................................................................................202 7.3 Bitmaps...........................................................................................................205 7.3.1 Introduction...........................................................................................205 7.3.2 Bitmap Creation...................................................................................206 7.4 Fonts...............................................................................................................209 7.4.1 Introduction...........................................................................................209 7.4.2 Font Selection.......................................................................................209 7.4.3 Font Creation........................................................................................209 7.4.4 Font Retrieval.......................................................................................215 7.5 Pens.................................................................................................................216 7.5.1 Introduction...........................................................................................216 7.5.2 The Fundamentals of a Pen................................................................216 7.5.3 Creating and Selecting a Pen.............................................................216 7.5.4 Retrieving a Pen...................................................................................220 7.6 Brushes...........................................................................................................220 7.6.1 Introduction...........................................................................................220 7.6.2 Solid Brushes........................................................................................221 7.6.3 Hatched Brushes..................................................................................225 7.6.4 Patterned Brushes................................................................................227 7.6.5 Logical Brushes....................................................................................229 CHAPTER 8: GDI ORIENTATION AND TRANSFORMATIONS........231 8.1 The Default Coordinate System.................................................................232 8.1.1 Introduction...........................................................................................232 8.1.2 Changing the Coordinate System......................................................234 8.2 The Mapping Modes....................................................................................238 8.2.1 Mapping Mode Choices......................................................................238 8.2.2 Unit and Coordinate Systems Options.............................................243 CHAPTER 9: STRINGS .........................................................................................249 9.1 Fundamentals of Strings..............................................................................250 9.1.1 Null-Terminated Strings.....................................................................250 9.1.2 The Standard string Class...................................................................251 9.1.3 The Length of a String........................................................................252 9.1.4 String Formatting.................................................................................253 9.2 Operations of Strings...................................................................................255 9.2.1 String Copy...........................................................................................255 9.2.2 String Concatenation...........................................................................257 9.3 The Characters of a String..........................................................................259 9.3.1 Access to Characters...........................................................................259 9.3.2 Sub-Strings............................................................................................260 9.4 The CString Class.........................................................................................260 9.4.1 Introduction...........................................................................................260 9.4.2 String Initialization..............................................................................261 9.4.3 The String and its Length...................................................................261 9.5 Working with Individual Characters.........................................................263 9.5.1 Character Indexing..............................................................................263 9.5.2 Character Insertion..............................................................................264 9.5.3 Finding a Character.............................................................................264 6 © FunctionX, Inc. Visual C++ and MFC Fundamentals Table of Contents 9.5.4 Character Identification......................................................................265 9.5.5 Removing Characters..........................................................................265 9.6 Sub Strings.....................................................................................................266 9.6.1 Introduction...........................................................................................266 9.6.2 Finding a Sub String............................................................................267 9.6.3 Character and String Removal...........................................................268 9.6.4 Replacing String Occurrences...........................................................268 9.6.5 String Formatting.................................................................................269 9.7 Operations on Strings...................................................................................270 9.7.1 About Constructing a String..............................................................270 9.7.2 String Assignment...............................................................................270 9.7.3 String Copy...........................................................................................271 9.7.4 Strings and Their Cases......................................................................271 9.8 String Comparisons......................................................................................272 9.8.1 Case Sensitivity....................................................................................272 9.8.2 Case Insensitivity.................................................................................273 CHAPTER 10: CHARACTERISTICS OF A WINDOW'S FRAME........277 10.1 Introduction to Win32 Library..................................................................278 10.1.1..Overview...............................................................................................278 10.1.2..The Framework....................................................................................279 10.1.3..A Window's Instance..........................................................................280 10.1.4..The Command Line.............................................................................281 10.1.5..Frame Display Options.......................................................................282 10.1.6..Window Class Initialization..............................................................282 10.1.7..Window Registration..........................................................................291 10.2 Window Creation.........................................................................................292 10.2.1..The Main Window..............................................................................292 10.2.2..The Window Class Name...................................................................294 10.2.3..The Window Name .............................................................................296 10.2.4..Windows Styles...................................................................................297 10.2.5..Window's Location and Size .............................................................298 10.2.6..Window's Parenting............................................................................305 10.2.7..The Window's Menu...........................................................................306 10.2.8..Window Display..................................................................................309 10.2.9..Considering Window's Messages.....................................................310 10.3 The Mini Frame Window...........................................................................314 10.3.1..Introduction..........................................................................................314 10.3.2..Creation of a Miniframe Window.....................................................314 CHAPTER 11: INTRODUCTION TO WINDOWS CONTROLS............317 11.1 Controls Fundamentals...............................................................................318 11.1.1..Introduction..........................................................................................318 11.1.2..The Parent-Child Window Relationship..........................................320 11.2 Parent Controls.............................................................................................321 11.2.1..Definition..............................................................................................321 11.2.2..Parent Windows Styles.......................................................................321 11.3 Windows Controls.......................................................................................321 11.3.1..Introduction..........................................................................................322 11.3.2..Control Creation Options...................................................................322 11.3.3..The Control's Class Name..................................................................325 11.3.4..The Control's Window Name............................................................327 11.4 Controls Styles and Common Properties.................................................327 11.4.1..Childhood..............................................................................................327 11.4.2..Visibility................................................................................................328 © FunctionX, Inc. 7 Table of Contents Visual C++ and MFC Fundamentals 11.4.3..Availability...........................................................................................329 11.4.4..Borders..................................................................................................330 11.4.5..Tab Sequence.......................................................................................331 11.5 Extended Styles............................................................................................332 11.5.1..Introduction..........................................................................................332 11.5.2..Left Text Alignment............................................................................333 11.5.3..Right Text Alignment.........................................................................333 11.5.4..Extended Borders................................................................................334 11.5.5..Controls Location and Dimensions..................................................336 11.5.6..Parenthood............................................................................................339 11.5.7..Control Identification..........................................................................339 CHAPTER 12: DIALOG-BASED WINDOWS...............................................343 12.1 Dialog Boxes................................................................................................344 12.1.1..Overview...............................................................................................344 12.1.2..Dialog Box Creation...........................................................................346 12.1.3..Dialog Box Location...........................................................................347 12.1.4..Dialog Box Dimensions.....................................................................348 12.1.5..Windows Styles for a Dialog Box....................................................350 12.1.6..Dialog Box Styles................................................................................355 12.1.7..Extended Windows Styles for a Dialog Box..................................356 12.1.8..Creating the Dialog Resource File....................................................359 12.1.9..Creating a Class for the Dialog.........................................................360 12.1.10Dialog Box Methods...........................................................................361 12.2 Modal Dialog Boxes...................................................................................362 12.2.1..Dialog-Based Applications................................................................362 12.2.2..The MFC Wizard for a Dialog-Based Application........................364 12.2.3..A Modal Dialog Box in an Application...........................................366 12.3 Property Sheets and Wizards.....................................................................367 12.3.1..Introduction to Property Pages..........................................................367 12.3.2..Creating Property Pages.....................................................................368 12.3.3..Property Sheets....................................................................................374 12.3.4..Wizard Pages........................................................................................378 CHAPTER 13: CONTROL DESIGN..................................................................381 13.1 Forms.............................................................................................................382 13.1.1..Introduction..........................................................................................382 13.1.2..Form Creation......................................................................................382 13.2 Dialog Box Messages and Events.............................................................384 13.2.1..The Dialog Box as a Control Initializer...........................................384 13.2.2..Other Dialog-Based Windows Messages........................................388 13.2.3..Control-Related Messages.................................................................389 13.3 Floating Windows.......................................................................................389 13.3.1..Introduction..........................................................................................390 13.3.2..The Modeless Dialog Box..................................................................390 13.3.3..Modeless Property Sheets..................................................................395 13.4 Control Design.............................................................................................399 13.4.1..Controls Selection and Addition.......................................................399 13.4.2..Control’s Location and Size Using Grids........................................400 13.4.3..Control’s Location and Size Without Grids....................................401 13.4.4..Selecting Controls on a Parent Window..........................................404 13.4.5..Controls Resizing................................................................................406 13.4.6..Controls Positions................................................................................408 13.4.7..Tab Ordering........................................................................................409 8 © FunctionX, Inc. Visual C++ and MFC Fundamentals Table of Contents CHAPTER 14: CONTROLS FUNCTIONALITY.........................................411 14.1 Handling Controls.......................................................................................412 14.1.1..Introduction..........................................................................................412 14.1.2..Control's Control Variables:..............................................................414 14.1.3..The Control’s Data Exchange...........................................................417 14.1.4..Control’s Value Variables..................................................................418 14.1.5..Controls Event Handlers....................................................................420 14.2 Controls Management.................................................................................421 14.2.1..Control’s Identification......................................................................421 14.2.2..The Client Area....................................................................................424 14.2.3..The Screen and Client Coordinates..................................................428 14.2.4..The Window: Its Location and Dimensions...................................432 14.2.5..The Handle or Pointer to a Window.................................................435 14.2.6..The Text of a Control..........................................................................436 14.2.7..Controls Values Update......................................................................441 14.2.8..Window’s Focus..................................................................................443 14.2.9..The Window’s Visibility....................................................................444 14.2.10The Window’s Availability...............................................................446 14.3 Access to a Controls Instance and Handle..............................................447 14.3.1..The Instance of an Application.........................................................447 14.3.2..The Handle to a Window...................................................................447 14.4 Getting Access to a Control.......................................................................448 14.4.1..Retrieving Control Information.........................................................449 14.4.2..Changing Control Information..........................................................450 CHAPTER 15: FUNDAMENTAL CONTROLS............................................453 15.1 Static Controls..............................................................................................454 15.1.1..Introduction..........................................................................................454 15.1.2..Static Control Properties....................................................................454 15.1.3..The Picture Control.............................................................................456 15.2 Animation Controls.....................................................................................458 15.2.1..Overview...............................................................................................458 15.2.2..Animation Control and Properties....................................................459 15.2.3..Animation Methods.............................................................................460 15.3 Group Boxes.................................................................................................463 15.3.1..Introduction..........................................................................................463 15.3.2..Group Box Properties and Data Exchange......................................463 15.4 Command Buttons.......................................................................................464 15.4.1..Overview...............................................................................................464 15.4.2..Command Buttons Properties and Methods....................................464 15.4.3..Buttons Messages................................................................................467 15.5 Property Sheet and Wizard Buttons.........................................................471 15.5.1..Property Sheet Buttons.......................................................................471 15.5.2..Wizard Buttons....................................................................................483 15.6 Bitmap Buttons............................................................................................485 15.6.1..Overview...............................................................................................486 15.6.2..Bitmap Button Implementation.........................................................486 CHAPTER 16: TEXT-BASED CONTROLS...................................................491 16.1 Labels ............................................................................................................492 16.1.1..Overview...............................................................................................492 16.1.2..Drawn Labels.......................................................................................494 16.1.3..Static Labels.........................................................................................496 16.2 Edit Controls ................................................................................................498 © FunctionX, Inc. 9 Table of Contents Visual C++ and MFC Fundamentals 16.2.1..Introduction..........................................................................................498 16.2.2..Edit Control Characteristics...............................................................500 16.2.3..Multiline Edit Boxes...........................................................................509 16.2.4..Edit Control Messages........................................................................510 16.3 The Rich Edit Control.................................................................................514 16.3.1..Overview...............................................................................................514 16.3.2..A Rich Edit Control............................................................................514 16.3.3..Rich Edit Properties............................................................................516 CHAPTER 17: TRACK-BASED CONTROLS...............................................523 17.1 Spin Button...................................................................................................524 17.1.1..Overview...............................................................................................524 17.1.2..Creating a Spin Button.......................................................................526 17.1.3..The Spin Button Properties................................................................528 17.1.4..Methods of Managing an UpDown Control...................................529 17.1.5..The Spin Button Events......................................................................535 17.2 The UpDown Control.................................................................................538 17.2.1..Overview...............................................................................................538 17.2.2..Using an UpDown Control................................................................540 17.2.3..The UpDown Control Events............................................................543 17.3 Slider Controls.............................................................................................545 17.3.1..Overview...............................................................................................545 17.3.2..Slider Creation.....................................................................................550 17.3.3..Slider Properties...................................................................................551 17.3.4..Slider Methods.....................................................................................554 17.3.5..Slider Events........................................................................................557 CHAPTER 18: PROGRESS-BASED CONTROLS.......................................559 18.1 Timers............................................................................................................560 18.1.1..Overview...............................................................................................560 18.1.2..The Timer Control...............................................................................561 18.1.3..The Timer Messages and Methods...................................................562 18.1.4..The Tick Counter.................................................................................564 18.2 Progress Controls.........................................................................................567 18.2.1..Overview...............................................................................................567 18.2.2..Progress Bar Properties......................................................................568 18.2.3..Progress Control Methods and Events.............................................569 18.3 Progress Bars................................................................................................572 18.3.1..Introduction..........................................................................................572 18.3.2..Creating Progress Bars.......................................................................572 18.3.3..Progress Bars Methods and Events..................................................575 18.4 Scroll Bars....................................................................................................577 18.4.1..Introduction..........................................................................................577 18.4.2..Creating Scroll Bars on Views and Dialog Boxes.........................578 18.4.3..Creating a Scroll Bar Control............................................................583 18.4.4..ScrollBar Properties............................................................................586 18.4.5..Scroll Bar Methods..............................................................................589 18.4.6..Scroll Bar Events.................................................................................593 18.5 Flat Scroll Bars............................................................................................596 18.5.1..Overview...............................................................................................596 18.5.2..Flat Scroll Bar Properties...................................................................596 18.5.3..Flat Scroll Bar Methods and Events.................................................598 CHAPTER 19: SELECTION-BASED CONTROLS.....................................599 10 © FunctionX, Inc.

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.