Mastering Visual C++ 6 by Michael J. Young Sybex, Inc. ISBN: 0782122736 Pub Date: 08/01/98 Search Tips Search this book: Advanced Search IntroductionTitle PART I—Introduction to Microsoft Visual C++ 6 CHAPTER 1—Setting Up the Software Installing Microsoft Visual C++ 6----------- Installing the Visual C++ Online Help What’s Included in Visual C++ 6 VC++ Developer Studio VC++ Runtime Libraries VC++ MFC and Template Libraries VC++ Build Tools ActiveX Data Access Enterprise Tools Graphics Tools Using the Companion CD Summary CHAPTER 2—Creating a Program Using the Microsoft Developer Studio Creating the Project Creating and Editing the Program Source File Using FileView and ClassView Accessing the Online Help
Changing Project Settings Building the Program Running the Program Debugging the Program SummaryPART II—Introduction to C++ CHAPTER 3—Moving to C++ Converting from C to C++ New Features of C++ Comments Declaration Statements The Scope Resolution Operator Inline Functions Default Function Parameters Reference Types Constant Types Overloaded Functions The new and delete Operators Summary CHAPTER 4—Defining C++ Classes Defining a Class Creating a Class Instance Accessing Class Members Encapsulation The Benefits of Encapsulation Constructors and Destructors Constructors Destructors When Constructors and Destructors Are Called Inline Member Functions Organizing the Source Files The this Pointer Static Class Members Summary CHAPTER 5—Deriving C++ Classes Deriving Classes Providing Constructors for Derived Classes Accessing Inherited Members Creating Hierarchies of Classes The Advantages of Inheritance Viewing and Managing Classes Using ClassView
Using Virtual Functions Using Virtual Functions to Handle Class Objects Using Virtual Functions to Modify Base Classes Summary CHAPTER 6—Overloading, Copying, and Converting Overloading Operators Defining Additional Operator Functions General Guidelines for Overloading Operators Overloading the Assignment Operator Using Copy and Conversion Constructors Writing Copy Constructors Writing Conversion Constructors Initializing Arrays Summary CHAPTER 7—Using C++ Templates Defining Function Templates Overriding Templates Defining Class Templates Creating an Object Based on a Template Adding Constructors to the Function Template Summary CHAPTER 8—Handling Exceptions in C++ Handling Thrown Exceptions Writing the Catch Code Placing Exception Handlers Nesting Exception Handlers Handling Win32 Exceptions SummaryPART III—Windows GUI Programming with the MFC Library CHAPTER 9—Generating a Windows GUI Program Programming for the Windows GUI Creating and Building the Program 1. Generating the Source Code 2. Modifying the Source Code 3. Building and Running the Program The Program Classes and Files How the Program Works The Flow of Program Control The InitInstance Function Summary
CHAPTER 10—Implementing the View The MiniDraw Program Generating the Source Files Defining and Initializing View Class Data Members Adding Message-Handling Functions Designing the Program Resources Customizing the MiniDraw Window The MiniDraw Program Source Code The MiniEdit Program Creating the MiniEdit Program The MiniEdit Program Source Code SummaryCHAPTER 11—Implementing the Document Storing the Graphic Data Redrawing the Window Adding Menu Commands Deleting the Document Data Implementing Menu Commands Handling the Delete All Command Handling the Undo Command The MiniDraw Source Code SummaryCHAPTER 12—Storing Documents in Disk Files Adding File I/O to MiniDraw Adding the File Menu Commands Supporting the File Menu Commands The MiniDraw Source Code Adding File I/O to MiniEdit Defining the Resources Adding Supporting Code The MiniEdit Source Code SummaryCHAPTER 13—Scrolling and Splitting Views Adding Scrolling Capability Converting Coordinates Limiting the Drawing Size Adding Splitting Capability Adding Splitting to a New Application Updating the Views Redrawing Efficiently The MiniDraw Source Code Summary
CHAPTER 14—Including Docking Toolbars and Status Bars Adding a Docking Toolbar and a Status Bar to a New Program Adding a Docking Toolbar to MiniDraw Defining the Resources Modifying the Code Adding a Status Bar to MiniDraw Completing the View Menu and Building the Program The MiniDraw Source Code SummaryCHAPTER 15—Creating Custom Dialog Boxes Creating a Modal Dialog Box Generating the Program Designing the Format Dialog Box Creating a Class to Manage the Dialog Box Defining Member Variables Defining Message Handlers Completing the CFormat Code Displaying the Dialog Box Changing the Program Title The FontDemo Source Code Creating a Modeless Dialog Box Creating a Tabbed Dialog Box The TabDemo Source Code Common Dialog Boxes SummaryCHAPTER 16—Writing Dialog-Based Applications Creating a Simple Dialog-Based Program Generating the DlgDemo Program in AppWizard Customizing the DlgDemo Program The DlgDemo Source Code Creating a Form-View Program Generating the FormDemo Program in AppWizard Customizing the FormDemo Program The FormDemo Source Code SummaryCHAPTER 17—Writing Multiple Document Applications The Multiple Document Interface Generating the Program The Program Classes, Files, and Code Customizing the Resources The MiniEdit Source Code Summary
CHAPTER 18—Performing Character I/O Displaying Text Generating the Program Writing Code to Display the Lines Creating the Font Object and Storing the Text Supporting Scrolling Modifying InitInstance Reading the Keyboard Reading Keys with a WM_KEYDOWN Message Handler Reading Keys with a WM_CHAR Message Handler Managing the Caret The TextDemo Source Code The Echo Source Code SummaryCHAPTER 19—Using Drawing Functions Creating the Device Context Object Selecting Drawing Tools Selecting Stock Drawing Tools Creating Custom Drawing Tools Setting Drawing Attributes The Mapping Mode Drawing the Graphics Drawing Points Drawing Straight Lines and Curves Drawing Closed Figures Other Drawing Functions The MiniDraw Program Defining Classes for the Figures Other Code Modifications The MiniDraw Source Code SummaryCHAPTER 20—Using Bitmaps and Bit Operations Creating a Bitmap Loading a Bitmap from a Resource Creating a Bitmap Using Drawing Functions Displaying a Bitmap Other Ways to Use a Bitmap Performing Bit Operations PatBlt BitBlt StretchBlt Displaying Icons
The BitDemo Program Designing the Bitmap Modifying the Code The BitDemo Source Code SummaryCHAPTER 21—Printing and Print Previewing Basic Printing and Print Previewing Modifying the Resources Modifying the Code Advanced Printing Changing the Drawing Size Overriding Virtual Printing Functions Modifying the OnDraw Function The MiniDraw Source Code SummaryCHAPTER 22—Using Multiple Threads Creating and Managing Secondary Threads Terminating a Thread Managing the Thread MFC Limitations Synchronizing Threads Other Synchronization Objects Other Types of Synchronization A Multithreading Version of the Mandel Program The MandelMT Source Code SummaryCHAPTER 23—Communicating Among Processes Starting New Processes Synchronizing Processes and Obtaining Handles to Shared Objects Exchanging Data Through Pipes Sharing Memory Using the Clipboard The Clipboard Commands Using the Clipboard to Transfer Text Using the Clipboard to Transfer Graphics Using the Clipboard to Transfer Registered Data Formats SummaryCHAPTER 24—Using OLE Embedding, Linking, and Automation Creating a Server Generating the Server Code in AppWizard Adding the Application-Specific Server Code
Mastering Visual C++ 6 by Michael J. Young Sybex, Inc. ISBN: 0782122736 Pub Date: 08/01/98 Search Tips Search this book: Advanced Search Previous Table of Contents NextTitle INTRODUCTION Microsoft Visual C++ has always been one of the most comprehensive and sophisticated software development environments available. It has consistently provided a high level of programming power and----------- convenience, while offering a diverse set of tools designed to suit almost every programming style. And Visual C++ version 6 adds significantly to the already impressive array of features. New features include easier application coding, building, and debugging; greater support for ActiveX and Internet technologies; additional database development options; and new application architectures and user-interface elements, such as Microsoft Internet Explorer 4 style controls. Learning to use Visual C++, however, can be a daunting task. The purpose of this book is to provide you with a single, comprehensive, step-by-step guide to Visual C++. It’s designed to be read through from the beginning and to give you a broad general understanding of the product, enabling you to choose the specific tools you need for particular programming tasks and allowing you to find all the information you need to use these tools. The book, however, provides much more than an overview or introduction. The detailed discussions and the tutorial exercises are designed to give you a solid understanding of the key programming tools and techniques, as well as to supply you with the tools and techniques that will help you become proficient in developing your programs. How, you might ask, can a single book serve as a comprehensive guide to such an enormous product? Mastering Visual C++ 6 does this in two ways. First, it focuses on the newer software technologies (for example, C++, Windows’ graphical interface programming, the Microsoft Foundation Classes, and the Wizard code generators), assuming that you have some knowledge of the older technologies (such as C, procedural character-mode programming, and the standard C runtime libraries). Second, the book contains many “pointers” to the comprehensive online documentation provided with Visual C++. Rather than attempting to discuss every detail of every feature—for example, every parameter passed to every function in a particular group—the book provides an in-depth discussion of the key features and then points you to the exact location in the documentation where you can find additional details. An Overview of the Book Part I of the book (Chapters 1 and 2) explains how to install and set up both Visual C++ and the companion
CD included with this book, and it provides a general description of the components of the Visual C++product. Part I also introduces you to the basic techniques required to write and build programs using theVisual C++ integrated development environment, the Developer Studio. You’ll learn just enough about theDeveloper Studio to be able to write and test simple example programs as you work through Part II.Part II (Chapters 3 through 8) offers an introduction to the C++ programming language. These chapters aredesigned to help you make the transition from C to C++ programming, and they focus on the C++ featuresused by the Microsoft Foundation Classes. You’ll learn just enough C++ programming to be able tounderstand the C++ techniques given in the coverage of the Microsoft Foundation Classes in Part III.Part III (Chapters 9 through 25) forms the heart of the book. It explains how to write programs for thegraphical user interface of Microsoft Windows 95 or later or Windows NT. (If you have the RISC edition ofVisual C++, you can use these techniques to develop for Windows NT on PowerPC, Alpha, or MIPS systems,as well as Intel systems. If you have the Macintosh cross-development edition of Visual C++, you can alsodevelop for the Macintosh or Power Macintosh.) Part III shows you how to use the Developer Studio and themost advanced development tools that it provides, such as the Microsoft Foundation Classes, the Wizardcode-generating tools, and the resource editors. Chiefly because of the comparative simplicity ofprogramming with these tools, Part III is able to cover not only the basics of Windows programming, but alsomany relatively advanced topics, such as implementing split window views, displaying status bars anddocking toolbars, writing MDI (multiple document interface) applications, using drawing functions andbitmaps, print previewing, running multiple threads of execution, exchanging data with OLE (object linkingand embedding), and creating and using ActiveX controls.The Companion CDThe compact disc accompanying this book includes all the source files you need to build the exampleprograms in this book, plus the executable files for these programs so that you can run them immediately.Chapter 1 describes the contents of this companion CD and explains how to install and use it.What Is RequiredThe book doesn’t require knowledge of either the C++ language or Windows’ graphical interfaceprogramming. The book assumes, however, that you have a basic knowledge of the C language. C++ conceptsare frequently explained in terms of—or are contrasted with—C language concepts. If you need to learn orreview C, you might consult one of the following books, which are among the many good C programmingtitles: The C Programming Language by Kernighan and Ritchie (Prentice-Hall), and C: A Reference Manualby Harbison and Steele (Prentice-Hall).ConventionsThe book contains many notes, which are labeled “Note,” “Tip,” or “Warning.” Such notes emphasizeimportant points or expand on topics in the main text. Notes are an integral part of the discussions, and youshould read them as you proceed through the text.The book also contains sidebars, which have titles and are presented in shaded boxes. The sidebars aretypically much longer than the notes and provide additional information that’s important but not essential forunderstanding the primary chapter topics. You can therefore safely skip a sidebar or peruse it before or afterreading the main text. In some chapters, the sidebars develop a connected thread of topics, so it’s best to readthem in order.Finally, the book contains many references to the Visual C++ online help. Chapters 1 and 2 explain how tointerpret these references and how to access the online help.How to Contact the AuthorYou can send me e-mail at firstname.lastname@example.org. I welcome your comments and feedback. Although myschedule seldom permits me to answer questions that require research (as many of them do), if you have aquestion I can readily answer, I’m happy to share what I know. You’re also invited to visit my Web site athttp://ourworld.compuserve.com/homepages/mjy/. There, you’ll find book corrections, reader questions andanswers, programming tips, descriptions of some of my other books, and additional information.
Mastering Visual C++ 6 by Michael J. Young Sybex, Inc. ISBN: 0782122736 Pub Date: 08/01/98 Search Tips Search this book: Advanced Search Previous Table of Contents NextTitle PART I Introduction to Microsoft Visual C++ 6----------- • CHAPTER 1: Setting Up the Software • CHAPTER 2: Creating a Program Using the Microsoft Developer Studio CHAPTER 1 Setting Up the Software • Installing Microsoft Visual C++ 6 • What’s included in Visual C++ 6 • Using the companion CD This chapter describes how to install Microsoft Visual C++ 6 and provides an overview of the Visual C++ components to help you choose the appropriate installation options and to introduce you to the product. The chapter concludes with instructions for using the companion CD provided with this book. Installing Microsoft Visual C++ 6 To use Visual C++ 6, you must be running Windows 95 or a later version, or Windows NT version 4.0 or later (see the Visual C++ 6 documentation for additional requirements). To install Visual C++ on your hard disk, insert the product CD into your CD-ROM drive (if there are several CDs, insert the first one). If the CD Autorun feature is enabled on your computer, the Setup program will automatically begin running after a few seconds. If this doesn’t happen, run the Setup.exe program in the root folder of the CD. Then simply enter the requested information, and Setup will install Visual C++ 6 on your hard disk. NOTE: Throughout this book, Windows 95 refers to Windows 95 or a later version, Windows NT refers to Windows NT
version 4.0 or later, and Windows refers to either system.The particular Setup options and components that you see depend on whether you have the Visual Studio 6product (which includes Visual Basic 6, Visual C++ 6, Visual J++ 6, and other development environments) oryou have just Visual C++ 6. The available options and components also depend on which version of VisualStudio 6 or Visual C++ 6 you have—Standard, Professional, or Enterprise.The Setup program will give you the opportunity to customize your installation by choosing individualcomponents from a series of dialog boxes. For example, if you’re installing the Visual Studio 6.0 EnterpriseEdition, the Setup program displays the “Visual Studio 6.0 Enterprise - Custom” dialog box shown in Figure1.1. The components listed in this dialog box include all the major development environments provided withVisual Studio 6.0 (Microsoft Visual Basic 6.0, Microsoft Visual C++ 6.0, and so on), plus the followingcommon tools and accessories that you can use with one or more of the development environments: • ActiveX • Data Access • Enterprise Tools • Graphics • ToolsCheck the box next to each component that you want to include in your installation, and clear the check markfrom each component you want to exclude. Click the Select All button if you want to include all thecomponents.FIGURE 1.1 The first custom-installation dialog box displayed by the Setup program for Visual Studio 6.0Enterprise EditionEach of the main Visual Studio components shown in Figure 1.1 consists of a collection of subcomponents,which you can choose individually (except ActiveX, which has no subcomponents). A check mark in adimmed box indicates that the component will be installed but not all its subcomponents. To specify whichsubcomponents are installed if a component is checked, highlight the component by clicking on it, click theChange Option... button, and then select the subcomponents you want in the dialog box that appears. Forexample, if you highlight Microsoft Visual C++ 6.0 and click Change Option..., the Visual Studio Setupprogram will display the dialog box shown in Figure 1.2. This dialog box lists the installable subcomponentsthat are specific to Visual C++, namely: • VC++ Developer Studio • VC++ Runtime Libraries • VC++ MFC and Template Libraries • VC++ Build ToolsMany of the subcomponents consist of further subcomponents. You use a subcomponent dialog box in thesame way as the main Visual Studio component dialog box.FIGURE 1.2 The dialog box displayed by the Setup program for Visual Studio 6.0 Enterprise Edition, if youhighlight the Microsoft Visual C++ 6.0 component and click the Change Option... buttonThroughout the remainder of the chapter, all installable components and subcomponents will be referred tosimply as components. The Visual C++ 6.0 components listed above—as well as the common tool andaccessory components listed previously—are described in the following section. You might want to read thatsection before you make your installation choices and complete the installation.
Mastering Visual C++ 6 by Michael J. Young Sybex, Inc. ISBN: 0782122736 Pub Date: 08/01/98 Search Tips Search this book: Advanced Search Previous Table of Contents NextTitle What’s Included in Visual C++ 6 This section describes each of the Visual C++ components, as well as the common tools and accessories, that you can install with the Setup program. This information indicates which components are required for working with this book. It will help you decide which components you want to install. It will also provide you----------- with an overview of the Visual C++ product and indicate where each component is discussed in this book or in the Visual C++ online help. NOTE: You might not have all the components discussed here. The particular components available depend on which edition of Visual C++ 6 you have—Standard, Professional, or Enterprise. For example, as you might guess, the Enterprise Features component is included only with the Enterprise Edition. VC++ Developer Studio The Developer Studio is the core of the Visual C++ product. It’s an integrated application that provides a complete set of programming tools. The Developer Studio includes a project manager for keeping track of your program source files and build options, a text editor for entering program source code, and a set of resource editors for designing program resources, such as menus, dialog boxes, and icons. It also provides programming wizards (AppWizard and ClassWizard), which help you to generate the basic source code for your programs, define C++ classes, handle Windows messages, and perform other tasks. You can build and execute your programs from within the Developer Studio, which automatically runs the optimizing compiler, the incremental linker, and any other required build tools. You can also debug programs using the integrated debugger, and you can view and manage program symbols and C++ classes using the ClassView window. Finally, you can access the Visual C++ online help by choosing commands on the Help menu of the Developer Studio. You’ll definitely need to install the Developer Studio to work through the chapters in this book. The wizards and the resource editors are introduced in Chapter 9, and the other development tools and the online help are introduced in Chapter 2. VC++ Runtime Libraries
Mastering Visual C++ 6 by Michael J. Young Sybex, Inc. ISBN: 0782122736 Pub Date: 08/01/98 Search Tips Search this book: Advanced Search Previous Table of Contents NextTitle ActiveX This component installs ActiveX controls that you can add to the Windows programs you create using the Microsoft Foundation Classes library. ActiveX controls are reusable software components that can perform a wide variety of tasks. You don’t need to install this component for working with this book. In Chapter 25----------- you’ll learn how to create and use your own ActiveX controls in Visual C++. Data Access The Data Access component includes database drivers, controls, and other tools that are used by Visual C++, and that allow you to develop Windows database programs. Although database programming isn’t covered in this book, you must select those Data Access subcomponents that are initially selected because they form an essential part of Visual C++ (if you deselect any of them, Setup displays a warning). For information on writing database applications, see the following online help topics: Visual C++ Documentation, Using Visual C++, Visual C++ Tutorials, Enroll and DAOEnrol: Database Applications, and Visual C++ Documentation, Using Visual C++, Visual C++ Programmer’s Guide, Adding Program Functionality, Overviews, Overviews: Adding Program Functionality, Databases: Overview. Enterprise Tools This component consists of the following enterprise tools: • Microsoft Visual SourceSafe 6.0 Client • Application Performance Explorer • Repository • Visual Component Manager • Self-installing .exe redistributable files • Visual Basic Enterprise Components • VC++ Enterprise Tools • Microsoft Visual Modeler • Visual Studio Analyzer
Enterprise programming is beyond the scope of this book, and you don’t need any of these tools to performthe tasks discussed. For information on the enterprise features see the Visual C++ help topic Visual C++Documentation, What’s New in Visual C++?, Visual C++ Editions, Enterprise Edition, and also look up theindividual enterprise tools in the online help.GraphicsThis component consists of graphics elements (metafiles, bitmaps, cursors, and icons) as well as video clipsthat you can add to your programs. You don’t need to install any of these elements for working with thisbook, though you might find them useful for enhancing the example programs and developing programs ofyour own.ToolsThe Tools component of Visual C++ comprises the following supplemental development tools: • API Text Viewer • MS Info • MFC Trace Utility • Spy++ • Win 32 SDK Tools • OLE/Com Object Viewer • ActiveX Control Test Container • VC Error LookupThese tools aren’t discussed in the book, and none of them is required to create the example programspresented, although the ActiveX Control Test Container can be quite useful for developing ActiveX controlsas described in Chapter 25. For information, look up the individual tools in the Visual C++ online help.Using the Companion CDThe companion CD provided with this book contains the following files: • All the source code files required to prepare the example programs given in the book. These files include the numbered listings printed in the book (such as Listing 9.1), project files for building each program using the Developer Studio (as explained in Chapter 2), plus all auxiliary files needed to generate the programs (for example, resource, icon, and bitmap files). For each example program, the book names the companion-CD folder that contains its source files, which is known as the project folder. • The executable program file for each example program, so that you can immediately run the program without having to process its source code. The project folder for each program on the CD includes both the release program version (in the Release subfolder) and the Debug version (in the Debug subfolder). Chapter 2 explains these two program versions. • The code listings from the introduction to C++ given in Part II of the book (which are not part of complete programs). These listings are all contained in the Cpp companion-CD folder.Because the files on the CD are not compressed, you can directly read the source files, open the project filesin the Developer Studio, or run the executable files. If, however, you want to modify a program’s source codeand rebuild the program, you must copy all the program’s source files to your hard disk. You can use yourfavorite method for copying these files (such as dragging and dropping the folder icon in Windows 95Explorer), but be sure to copy the entire project folder (for example, the BitDemo folder for the BitDemoprogram), together with any subfolders contained within the project folder (such as the Debug, Release, andRes subfolders within the BitDemo folder). Also, you can change the name of the project folder (forexample, you could rename the BitDemo folder MyBitDemo), but don’t change the names of the subfolders(these names are stored in the project file for the program).SummaryThis chapter explained how to install the Microsoft Visual C++ 6 product and provided an overview of thecomponents of Visual C++. It also explained how to use the companion CD included with the book. The nextchapter introduces the Microsoft Developer Studio, by showing you how to use the tools it provides to create
Mastering Visual C++ 6 by Michael J. Young Sybex, Inc. ISBN: 0782122736 Pub Date: 08/01/98 Search Tips Search this book: Advanced Search Previous Table of Contents NextTitle CHAPTER 2 Creating a Program Using the Microsoft Developer----------- Studio • Creating the project • Creating and editing the program source file • Changing project settings • Building the program • Running the program • Debugging the program The Microsoft Developer Studio is an integrated application that serves as the primary interface for accessing the development tools provided by Microsoft Visual C++. You can use it to manage programming projects, to create and edit program source files, to design program resources (such as menus, dialog boxes, and icons), and even to generate some of the basic program source code (by means of the wizards). You can build and debug your programs directly within the Developer Studio. You can also examine and manage program symbols and C++ classes, and you can access the Visual C++ online help, using commands on the Help menu. This chapter will introduce you to all these basic facilities and tools except the resource editors and the wizards, which are used for creating Windows GUI (graphical user interface) programs and are discussed in Part III. In this chapter, you’ll create a very simple console (that is, character-mode) program. The knowledge you gain here will allow you to enter and run the example code—as well as to create simple test programs—while you’re reading through the introduction to the C++ language given in Part II of the book. Part III provides detailed information on using the Developer Studio to create Windows GUI programs. For further instructions on creating console programs, see the following two Visual C++ online help topics: Visual C++ Documentation, Using Visual C++, Visual C++ Programmer’s Guide, Beginning Your Program, Creating a Console Program, and Platform SDK, Windows Base Services, Files and I/O, Consoles and Character-Mode Support.
Creating the ProjectTo run the Developer Studio, choose the Microsoft Visual C++ 6 command on the Programs submenu of yourWindows Start menu, which will look something like this:Once the Developer Studio begins running, the first step is to create a project for the program you’re about towrite. A Visual C++ project stores all the information required to build a particular program. This informationincludes the names and relationships of the program source files; a list of the required library files; and a listof all options for the compiler, linker, and other tools used in building the program.In this chapter, you’ll write an example C++ program named Greet. To create a project for this program,perform the following steps: 1. Choose the File Ø New... menu command in the Developer Studio, or simply press Ctrl+N. The New dialog box will appear. 2. Open the Projects tab of the New dialog box (if it’s not already open), so that you can create a new project. NOTE: When you create the new project, the Developer Studio automatically creates a project workspace and adds the new project to it. A project workspace is capable of storing one or more individual projects. All the example programs in this book use a project workspace that contains only a single project. For more complex undertakings, you can add additional projects to a project workspace, which allows you to open and work with several projects at the same time. 3. In the list of project types, select the “Win32 Console Application” item. A console application is a 32-bit character-mode program. Like a 16-bit MS-DOS program, it can be run either in a simple window on the Windows desktop or using the full screen. A console program can be written using many of the basic techniques that are commonly used to write character-mode programs for MS-DOS or Unix. Specifically, you can display output and read input using simple stream-mode library functions such as printf and gets or—in C++ programs—the member functions of the iostream class library. The example programs given in Part II of the book use the iostream functions and are written as console applications so that you can concentrate on learning C++ without bothering with the complexities of programming for the Windows GUI. In Part III you’ll choose the “MFC AppWizard (exe)” project type to write Windows GUI applications using the Microsoft Foundation Classes and the Visual C++ Wizards. NOTE: For an explanation of the different project types, see the following topic in the online help: Visual C++ Documentation, Using Visual C++, Visual C++ User’s Guide, Working with Projects, Overview: Working with Projects, Project Types. 4. Enter Greet into the Project Name: text box. This will cause the Developer Studio to assign the name Greet to the new project (as well as to the project workspace that contains this project). 5. In the Location: text box, specify the path of the folder that is to contain the project files, which is known as the project folder. If you wish, you can simply accept the default folder path that is initially contained in this box (the default project folder is given the same name as the project workspace, Greet). Click the button with the ellipsis (...) if you want to search for a different location for the project folder. If the specified project folder doesn’t exist, the Developer Studio will create it (it will also create one or more subfolders within the project folder to store output files, as explained later). 6. To complete the Projects tab of the New dialog box, make sure that the Win32 item is checked in the Platforms: area. Unless you have installed a cross-development edition of Visual C++ (such as Microsoft Visual C++ Cross-Development Edition for Macintosh), Win32 will be the only option in this area. Win32 is the 32-bit API (application programming interface) for both GUI and console programs written for Windows 95 and Windows NT. Selecting the Win32 platform means that the program will be supported by Win32, that it can call the Win32 functions, and that it will be able to run as a 32-bit program on Windows 95 as well as Windows NT. The completed Projects tab is shown in Figure 2.1. NOTE:
Mastering Visual C++ 6 by Michael J. Young Sybex, Inc. ISBN: 0782122736 Pub Date: 08/01/98 Search Tips Search this book: Advanced Search Previous Table of Contents NextTitle 16-Bit vs. 32-Bit Programs Programs written for MS-DOS and for Windows through version 3.x are 16-bit programs, meaning that they run in a processor mode that uses 16-bit-wide registers. The primary implications of running in a 16-bit mode are that the size of an integer is 16 bits, and a memory location is addressed using a 16-bit segment----------- address (or segment selector) plus a 16-bit offset. Win32 programs developed with Visual C++ 6 are 32-bit programs, meaning that they run in a processor mode that uses 32-bit-wide registers. The primary implications of running in a 32-bit mode are that the size of an integer is 32 bits, and a memory location is addressed using a single 32-bit address (this is known as a flat memory addressing model, and it allows a program to theoretically address up to 4GB of virtual memory). Using Visual C++ 6, you can develop only 32-bit applications. To develop 16-bit applications (for Windows 3.1 or MS-DOS), you’ll need a 16-bit version of Visual C++ or a 16-bit development environment by another vendor. Note that for compatibility you can run 16-bit MS-DOS and Windows 3.1 programs under Windows 95 or Windows NT, though they can’t take full advantage of the system. 7. Click the OK button in the New dialog box. The Developer Studio will now display the Win32 Console Application wizard, which consists of only a single dialog box. 8. In the Win32 Console Application dialog box, select the An Empty Project option as shown in Figure 2.2. This option creates a project without adding any source code files to it. It’s recommended for this exercise so that you can learn how to create your own source code files. Later, you can save time by choosing the options A Simple Application or A “Hello, World!” Application, which create initial source code files for you. Or you can choose the An Application That Supports MFC option so that you can use the MFC classes that are compatible with console programs (such as the CString class, and the collection classes discussed in Chapter 11).
FIGURE 2.2 The completed Win32 Console Application dialog box 9. Click the Finish button at the bottom of the Win32 Console Application dialog box, and the New Project Information dialog box will appear, which displays basic information on the new project that will be created. See Figure 2.3. 10. Click the OK button at the bottom of the New Project Information dialog box.FIGURE 2.3 The New Project Information dialog box for the Greet projectThe Developer Studio will now create and open a new project workspace, named Greet, which contains asingle project, also named Greet. Information on the project will be displayed within the Workspace window,shown in Figure 2.4. If the Workspace window isn’t visible, display it by choosing the View Ø Workspacemenu option or by pressing Alt+0. The Workspace window consists of two tabs, ClassView and FileView,which display different types of information on the project; they will be explained later in the chapter. (Whenyou create a Windows GUI program, as discussed in Chapter 9, the Workspace window will include anadditional tab, ResourceView.) NOTE: Because the arrangement of toolbars and windows in the Developer Studio is highly customizable, what you see might be quite a bit different than what’s shown in Figure 2.4.FIGURE 2.4 Information on the newly created Greet project displayed within the Workspace window of theDeveloper StudioYou can close the Greet project if you wish by choosing the File Ø Close Workspace menu command. Youcan later reopen the project by choosing the File Ø Open Workspace... menu command and selecting theGreet project workspace file, Greet.dsw, in the Open Workspace dialog box. Alternatively, if you’ve workedwith the Greet project recently, you can quickly open it by choosing the Greet item on the File Ø RecentWorkspaces submenu.Creating and Editing the Program Source FileThe next step is to create the program source file, Greet.cpp. To do this, choose the File Ø New... menucommand in the Developer Studio. This time, open the Files tab and select the “C++ Source File” item fromthe list of file types. Then, enter the source file name, Greet.cpp, into the File Name: text box, and make surethat the Add To Project box is checked. The list under the Add To Project check box will already contain thename of the project, Greet, and the Location: text box will contain the full path of the project folder youspecified when you created the project; leave both of these items as they are. The completed dialog box isshown in Figure 2.5. Click the OK button when you’re done.
Mastering Visual C++ 6 by Michael J. Young Sybex, Inc. ISBN: 0782122736 Pub Date: 08/01/98 Search Tips Search this book: Advanced Search Previous Table of Contents NextTitle Many of the Developer Studio editing commands will already be familiar to you if you’ve used other Windows text editors or development environments. Table 2.1 summarizes most of the important editing keystrokes. Note that these are the default keystrokes; you can modify any of them. To see a complete list of Visual C++ keyboard commands, which reflects any modifications that have been made, choose the Help Ø Keyboard Map... menu command. For a full description of the editing commands, operations you can perform----------- with the mouse, and ways to customize the editor, see the following online help topic: Visual C++ Documentation, Using Visual C++, Visual C++ User’s Guide, Text Editor. TABLE 2.1: Useful Default Keystrokes for Developer Studio Text Editor Move Insertion Point Keystroke One character back ß One character forward à One line up á One line down â One word forward Ctrl+à One word back Ctrl+ß To first character in line Home To column 1 Home, and then Home One screen up PgUp One screen down PgDn To beginning of file Ctrl+Home To end of file Ctrl+End To matching brace Place insertion point in front of Ctrl+] brace and press To a specific line or other target Ctrl+G Scroll Window Keystroke Up one line Ctrl+á
Down one line Ctrl+âSelect KeystrokeText Shift + one of the movement keystrokes given aboveColumns of text Ctrl+Shift+F8 to enter column select mode, and then movement keystrokes given aboveEnd column select mode Ctrl+Shift+F8 again, or EscSelect entire file Ctrl+ACopy, Cut, Paste, and Delete Text KeystrokeCopy selected text to Clipboard (Copy) Ctrl+CCopy seleCopy selected text to Clipboard and delete Ctrl+Xit (Cut)Copy current line to Clipboard and delete it (Cut Ctrl+LLine)Paste text from Clipboard (Paste) Ctrl+VDelete selected text DelDelete character to right of insertion point DelDelete character to left of insertion point BackspaceDelete word to left of insertion point Ctrl+BackspaceDelete current line Ctrl+Shift+LTabs KeystrokeInsert tab character (or spaces) TabMove to previous tab position Shift+TabMove several lines one tab to right Select lines and then press TabMove several lines one tab to left Select lines and then press Shift+TabToggel display of tab characters (as » characters) Ctrl+Shift+8and spaces (as dots)Miscellaneous Editing Operations KeystrokeChange selection to uppercase Ctrl+Shift+UChange selection to lowercase Ctrl+UToggle between insert and overwrite modes InsSwap current and previous lines Alt+Shift+TUndo/Redo KeystrokeUndo previous edit Ctrl+ZRedo previous edit Ctrl+YFind KeystrokeFind text using Find list on Standard toolbar Ctrl+D, enter text, then press Enter or F3Open Find dialog box Ctrl+FFind next occurrence F3Find previous occurrence Shift+F3Find next occurrence of selected text or word under Ctrl+F3insertion pointFind previous occurrence of selected text or word Ctrl+Shift+F3under insertion pointPerform forward incremental search Press Ctrl+I and then begin typing search textPerform backward incremental search Press Ctrl+Shift+I and then begin typing search textFind and replace text Ctrl+HFind next build error F4Find previous build error Shift+F4
Mastering Visual C++ 6 by Michael J. Young Sybex, Inc. ISBN: 0782122736 Pub Date: 08/01/98 Search Tips Search this book: Advanced Search Previous Table of Contents NextTitle When you’ve finished typing in the source code, save your work by choosing the File Ø Save menu command, or by clicking the Save button on the Standard toolbar:----------- The Greet program uses the C++ iostream libra