Special Edition Using Visual C++ 6

Previous chapterNext chapterContents


- C -

The Visual Studio User Interface, Menus, and Toolbars


Reviewing Developer Studio: An Integrated Development Environment

When you buy Microsoft Visual C++, you actually get Microsoft Developer Studio with the Visual C++ component activated. Developer Studio is far more than just a compiler, and you have far more to learn than you may think. The interface is very visual, which means that there are many possibilities greeting you when you first run Visual C++.

Microsoft Visual C++ is one component of the Microsoft Developer Studio. The capabilities of this one piece of software are astonishing. It is called an integrated development environment (IDE) because within a single tool, you can perform the following:

Visual C++ is, technically speaking, just one component of Developer Studio. You can buy, for example, Microsoft's Visual J++ compiler and use it in Developer Studio as well. Looking at it another way, Visual C++ is more than just Developer Studio because the Microsoft Foundation Classes (MFC) that are becoming the standard for C++ Windows programming are a class library and not related to the development environment. In fact, the major C++ compilers all use MFC now. However, for most people, Visual C++ and Developer Studio mean the same thing, and in this book the names are used interchangeably.

Choosing a View

The user interface of Developer Studio encourages you to move from view to view in your project, looking at your resources, classes, and files. The main screen is divided into panes that you can resize to suit your own needs. There are many shortcut menus, reached by right-clicking different places on the screen, that simplify common tasks.

With Visual C++, you work on a single application as a workspace, which contains one or more projects. A project is a collection of files: source, headers, resources, settings, and configuration information. Developer Studio is designed to enable work on all aspects of a single workspace at once. You create a new application by creating a new project. When you want to work on your application, open the workspace (a file with the extension .DSW) rather than each code file independently. The interface of \revdttm1176855283 Developer Studio, shown in Figures C.1 and C.2, is designed to work with a workspace and is divided into several zones.

FIG. C.1 The Developer Studio interface presents a lot of information. The Workspace window is on the left.

FIG. C.2 When the Workspace window is narrowed, the words on the tabs are replaced with icons.

The zones that make up the Developer Studio interface are as follows:


TIP: Open Developer Studio and try to resize the panes and follow along as functions are described in this chapter. If you want an application to follow along with, you can build a very simple one as described in Chapter 1, "Building Your First Windows Application."

The Workspace window determines which way you look at your project and what is in the main working area: code or resources (menus, icons, and dialog boxes). Each of these views is discussed in detail in a separate section in this chapter, including the following:

Developer Studio uses two different files to keep track of all the information about your project. The project workspace file, with a .DSW extension, contains the names of all the files in the project, what directories they are in, compiler and linker options, and other information required by everyone who may work on the project. There is also a project file, with a .DSP extension, for each project within the workspace. The workspace options file, with an .OPT extension, contains all your personal settings for Developer Studio--colors, fonts, toolbars, which files are open and how their MDI windows are sized and located, breakpoints from your most recent debugging session, and so on. If someone else is going to work on your project, you give that person a copy of the project workspace file and project file but not the project options file.

To open the project, open the project workspace file. The other files are opened automatically.

Looking at Interface Elements

After you've opened or created a workspace, clicking the ResourceView tab in the Workspace window opens an expandable and collapsible outline of the visual elements of your program: accelerators, dialog boxes, icons, menus, the string table, toolbars, and version information. These resources define the way users interact with your program. Chapter 2, "Dialogs and Controls;" Chapter 8, "Building a Complete Application: ShowString;" and Chapter 9, "Status Bars and Toolbars" cover the work involved in creating and editing these resources. The next few sections cover the way in which you can look at completed resources.


TIP: Open one of the projects that was built in this book, or a sample project from Visual C++, and follow along as functions are described in this section. ShowString, the sample application from Chapter 8, is a good choice because it uses most of the features described in this section.

Accelerators

Accelerators associate key combinations with menu items. Figure C.3 shows an accelerator resource created by AppWizard. All these accelerator combinations are made for you when you create a new application. You can add accelerators for specific menu items, if necessary.

FIG. C.3 Accelerators associate key combinations with menu items.

Dialog Boxes

Your application receives information from users through dialog boxes. When a dialog resource is being displayed in the main working area, as in Figure C.4, a control palette floats over the working area. (If it's not displayed, right-click the menu bar and check Controls to display it.) Each small icon on the palette represents a control (edit box, list box, button, and so on) that can be inserted onto your dialog box. By choosing View, Properties, the Dialog Properties box shown in Figure C.4 is displayed. Here the behavior of a control or of the whole dialog box can be controlled.


TIP: Click the pushpin at the top left of the Properties box to keep it displayed, even when a different item is highlighted. The box displays the properties of each item you click.

This method of editing dialog boxes is one of the reasons for the name Visual C++. In this product, if you want a button to be a little lower on a dialog box, you click it with the mouse, drag it to the new position, and release the mouse button. Similarly, if you want the dialog box larger or smaller, grab a corner or edge and drag it to the new size, like any other sizable window. Before Visual C++ was released, the process involved coding and pixel counting and took many minutes rather than just a few seconds. This visual approach to dialog box building made Windows programming accessible to many more programmers.

FIG. C.4 Dialog boxes receive information from the user.

Icons

Icons are small bitmaps that represent your program or its documents. For example, when a program is minimized, an icon is used to represent it. A larger version of that icon is used to represent both the program and its documents within an Explorer window. When an MDI window is minimized within your application, the minimized window is represented by an icon. Figure C.5 shows the default icon provided by AppWizard for minimized MDI windows. One of your first tasks after building any application is to replace this with an icon that more clearly represents the work your program performs.

An icon is a 32*32 pixel bitmap that can be edited with any number of drawing tools, including the simple bitmap editor included in Developer Studio. The interface is very similar to Microsoft Paint or Microsoft Paintbrush in Zoom mode. You can draw one pixel at a time by clicking, or freehand lines by clicking and dragging. You can work on the small or zoomed versions of the icon and see the effects at once in both places.

Menus

With menus, users can tell your program what to do. Keyboard shortcuts (accelerators) are linked to menu items, as are toolbar buttons. AppWizard creates the standard menus for a new application, and you edit those and create new ones in this view. Later, you'll use ClassWizard to connect menu items to functions within your code. Figure C.6 shows a menu displayed in the ResourceView. Choose View, Properties to display the Menu \revised Properties box for the menu item. Every menu item has the following three components:

FIG. C.5 Icons represent your application and its documents.

The String Table

The string table is a list of strings within your application. Many strings, such as the static text on dialog boxes or the prompts for menu items, can be accessed in far simpler ways than through the string table, but some are reached only through it. For example, a default name or value can be kept in the string table and changed without recompiling any code, though the resources will have to be compiled and the project linked. Each of these could be hard-coded into the program, but then changes would require a full recompile.

Figure C.7 shows the string table for a sample application. To change a string, open the String Table Properties dialog box and change the caption. Strings cannot be changed within the main working area.

FIG. C.6 Your application receives commands through menus.

FIG. C.7 The string table stores all the prompts and text in your application.

Toolbars

Toolbars are the lines of small buttons typically located directly underneath the menus of an application. Each button is linked to a menu item, and its appearance depends on the state of the menu item. If a menu item is grayed, the corresponding toolbar button is grayed as well. If a menu item is checked, the corresponding toolbar button is typically drawn as a pushed-in button. In this way, toolbar buttons serve as indicators as well as mechanisms for giving commands to the application.

A toolbar button has two parts: a bitmap of the button and a resource ID. When a user clicks the button, it is just as though the menu item with the same resource ID was chosen. Figure C.8 shows a typical toolbar and the properties of the File, Open button on that toolbar. In this view, you can change the resource ID of any button and edit the bitmap with the same tools used to edit icons.

FIG. C.8 Toolbar buttons are associated with menu items through a resource ID.

Version Information

Good installation programs use the version information resource when installing your application on a user's machine. For example, if a user is installing an application that has already been installed, the installation program may not have to copy as many files. It may alert the user if an old version is being installed over a new version, and so on.

When you create an application with AppWizard, version information like that in Figure C.9 is generated for you automatically. Before attempting to change any of it, make sure you understand how installation programs use it.

FIG. C.9 Version information is used by install programs.

Looking at Your Code, Arranged by Class

The ClassView shows the classes in your application. Under each class, the member variables and functions are shown, as demonstrated in Figure C.10. Member functions are shown first with a purple icon next to them, followed by member variables with a turquoise icon. Protected members have a key next to the icon, whereas private members have a padlock.

FIG. C.10 The ClassView shows the functions and variables in each class in your application.

Double-clicking a function name opens the source for that function in the main working area, as shown in Figure C.10. Double-clicking a variable name opens the file in which the variable is declared.

Right-clicking a classname opens a shortcut menu, shown in Figure C.11, with these items:

FIG. C.11 Common commands related to classes are on the ClassView shortcut menu for a class.


FIG. C.12 Never again forget to add part of a function declaration or definition when you use the Add Member Function shortcut.

FIG. C.13 Simplify adding member variables with this shortcut.


TIP: Menu items that appear on a toolbar have their toolbar icon next to them on the menu. Make note of the icon; the next time you want to choose that item, perhaps you can use a toolbar instead.

Right-clicking the name of a member function opens a substantial shortcut menu, with the following menu items:

FIG. C.14 The Call Graph window lists all the functions that your function calls, and all the functions they call, and so on.

Right-clicking the name of a member variable opens a shortcut menu with less menu items. The items are as follows:

When the main working area is displaying a source or header file, you can edit your code as described in the later section "Editing Your Code."

Looking at Your Code, Arranged by File

The FileView is much like the ClassView in that you can display and edit source and header files (see Figure C.15). However, it gives you access to parts of your file that are outside class definitions and makes it easy to open non-code files like resources and plain text.

The project workspace window contains a tree view of the source files in your project. The default categories used are Source Files, Header Files, Resource Files, Help Files (if you project has Help) and External Dependencies. You can add your own categories by right- clicking anywhere in the FileView and choosing New Folder, and then specifying which file extensions belong in the new category.

FIG. C.15 The FileView displays source and header files.

Double-clicking a file name displays that file in the main working area. You can then edit the file (even if it isn't a source or header file) as described in the later section "Editing Your Code."

Output and Error Messages

Across the bottom of the Developer Studio screen is the Output view. This is a tabbed view that shows output and error messages from a variety of Developer Studio functions.


TIP: If there is no Output view on your screen, choose View, Output from the menu to restore the view.

The five tabs in the Output view are the following:

If you have installed the Enterprise Edition of Visual C++, there is a sixth tab, SQL Debugging. For more information, see Chapter 23, "SQL and the Enterprise Edition."

Editing Your Code

For most people, editing code is the most important task you do in a development environment. If you've used any other editor or word processor before, you can handle the basics of the Developer Studio editor right away. You should be able to type in code, fix your mistakes, and move around in source or header files by using the basic Windows techniques you would expect to be able to use. Because this is a programmer's editor, there are some nice features you should know about.

Basic Typing and Editing

To add text to a file, click where you want the text to go and start typing. By default, the editor is in Insert mode, which means your new text pushes the old text over. To switch to Overstrike mode, press the Insert key. Now your text types over the text that is already there. The OVR indicator on the status bar reminds you that you are in Overstrike mode. Pressing Insert again puts you back in Insert mode. Move around in the file by clicking with the mouse or use the cursor keys. To move a page or more at a time, use the Page Up and Page Down keys or the scrollbar at the right side of the main working area.

By default, the window for the file you are editing is maximized within the main working area. You can click the Restore button at the top right, just under the Restore button for all of Developer Studio, to show the file in a smaller window. If you have several files open at once, you can arrange them so that you can see them side by side, as shown in Figure C.16.

FIG. C.16 Your files are in MDI windows, so you can edit several at once, side by side.

Working with Blocks of Text

Much of the time, you will want to perform an action on a block of text within the editor. First, select the block by clicking at one end of it and, holding the mouse button down, moving the mouse to the other end of the block, then releasing the mouse button. This should be familiar from so many other Windows applications. Not surprisingly, at this point you can copy or cut the block to the Clipboard, replace it with text you type, replace it with the current contents of the Clipboard, or delete it.


TIP: To select columns of text, as shown in Figure C.17, hold down the Alt key as you select the block.

Syntax Coloring

You may have noticed the color scheme used to present your code. Developer Studio highlights the elements of your code with syntax coloring. By default, your code is black, with comments in green and keywords (reserved words in C++ such as public, private, new, or int) in blue. You can also arrange for special colors for strings, numbers, or operators (such as + and -) if you want, using the Format tab of the Options dialog box, reached by choosing Tools, Options.

Syntax coloring can help you spot silly mistakes. If you forget to close a C-style comment, the huge swath of green in your file points out the problem right away. If you type inr where you meant to type int, the inr isn't blue, and that alerts you to a mistyped keyword. This means you can prevent most compiler errors before you even compile.

FIG. C.17 Selecting columns makes fixing indents much simpler. Hold down the Alt key as you select the block.


TIP: If you build Web pages and still use Notepad from time to time so that you can see the tags, you're in for a pleasant surprise. Open an HTML file in Developer Studio and see HTML syntax coloring in action. You'll never go back to Notepad.

Shortcut Menu

Many of the actions you are likely to perform are available on the shortcut menu that appears when you right-click within a file you are editing. The items on that menu are as follows:

Not all the items are enabled at once--for example, Cut and Copy are only enabled when there is a selection. Insert File into Project is enabled only when the file you're editing is not in the project you have open. All these actions have menu and toolbar equivalents and are discussed more fully later in this chapter.

Learning the Menu System

Developer Studio has many menus. Some commands are three or four levels deep under the menu structure. In most cases, there are far quicker ways to accomplish the same task, but for a new user, the menus are an easier way to learn because you can rely on reading the menu items as opposed to memorizing shortcuts. There are nine menus on the Developer Studio menu bar, as follows:

The following section presents each Developer Studio menu in turn and mentions keyboard shortcuts and toolbar buttons where they exist.

Using the File Menu

The File menu, shown in Figure C.18, collects most of the commands that affect entire files or the entire project.

FIG. C.18 The File menu has actions for files like Open, Close, and Print.

File New (Ctrl+N)  Choosing this menu item opens the New dialog box, shown in Figure C.19. This tabbed dialog box is used to create new files, projects, workspaces, or other documents. The Project tab is used to start AppWizard, discussed for the first time in Chapter 1, "Building Your First Windows Application."

FIG. C.19 The New dialog box is used to create new files or workspaces.

This dialog box is an easy way to create a blank file, give it a name, and insert it into your project all in one step.

File Open (Ctrl+O)  Choosing this item opens the Open dialog box, as shown in Figure C.20. (It's the standard Windows File Open dialog box, so it should be familiar.) The file type defaults to Common Files with .C, .CPP, .CXX, .TLI, .H, .TLH, .INL, or .RC extensions. By clicking the drop-down box, you can open almost any kind of file, including executables and workspaces.


TIP: Don't forget the list of recently opened files further down the File menu. That can save a lot of typing or clicking.

FIG. C.20 The familiar File Open dialog box is used to open a variety of file types.

File Close  Choosing the File, Close item closes the file that has focus; if no file has focus, the item is grayed. You can also close a file by clicking the cancel button, depicted by an X, in the top-right corner. You may also close the window by double-clicking the icon in the upper-left corner. (The icon used to be the system menu, shown with a minus on a button.)

File Open Workspace  Use this item to open a workspace. (You can use File, Open and change the file type to Project Workspaces, but using File, Open Workspace is quicker.)

File Save Workspace  Use this item to save a workspace and all the files within it.

File Close Workspace  Use this item to close a workspace. The current workspace is closed automatically when you create a new project or open another workspace, so you won't use this menu item very often.

File Save (Ctrl+S)  Use this item to save the file that has focus at the moment; if no file has focus, the item is grayed. There is a Save button on the Standard toolbar as well.

File Save As  Use this item to save a file and change its name at the same time. It saves the file that has focus at the moment; if no file has focus, the item is grayed.

File Save All  This item saves all the files that are currently open. All files are saved just before a compile and when the application is closed, but if you aren't compiling very often and are making a lot of changes, it's a good idea to save all your files every 15 minutes or so. (You can do it less often if the idea of losing that amount of work doesn't bother you.)

File Page Setup  This item opens the Page Setup dialog box, shown in Figure C.21. Here you specify the header, footer, and margins--left, right, top, and bottom. The header and footer can contain any text including one or more special fields, which you add by clicking the arrow next to the edit box or entering the codes yourself. The codes are

FIG. C.21 The Page Setup dialog box lays out your printed pages the way you want.


File Print (Ctrl+P)  Choosing this item prints the file with focus according to your Page Setup settings. (The item is grayed if no file has focus.) The Print dialog box, shown in Figure C.22, has you confirm the printer you want to print on. If you have some text highlighted, the Selection radio button is enabled. Choosing it lets you print just the selected text; otherwise, only the All radio button is enabled, which prints the entire file. If you forget to set the headers, footers, and margins before choosing File, Print, the Setup button opens the Page Setup dialog box discussed in the previous section. There is no way to print only certain pages or to cancel printing after it has started.

FIG. C.22 The Print dialog box confirms your choice to print a file.

Recent Files and Recent Workspaces  The recent files and workspaces items, between Print and Exit, each lead to a cascading menu. The items on the secondary menus are the names of files and workspaces that have been opened most recently, up to the last four of each. These are real time-savers if you work on several projects at once. Whenever you want to open a file, before you click that toolbar button and prepare to point and click your way to the file, think first whether it might be on the File menu. Menus aren't always the slower way to go.

File Exit  Probably the most familiar Windows menu item of all, this closes Developer Studio. You can also click the X in the top-right corner or double-click what used to be the system menu in the top left. If you have made changes without saving, you get a chance to save each file on your way out.

Edit

The Edit menu, shown in Figure C.23, collects actions related to changing text in a source file.

Edit Undo (Ctrl+Z)  The Undo item reverses whatever you just did. Most operations, like text edits and deleting text, can be undone. When Undo is disabled, it is an indication that nothing needs to be undone or you cannot undo the last operation.

FIG. C.23 The Edit menu holds items that change the text in a file.

There is an Undo button on the Standard toolbar. Clicking the arrow next to the button displays a stack (reverse order list from most recent to least recent) of operations that can be undone. You must select a contiguous range of undo items including the first, second, and so on. You cannot pick and choose.

Edit Redo (Ctrl+Y)  As you undo actions, the name given to the operations move from the Undo to the Redo list (Redo is next to Undo on the toolbar). If you undo a little too much, choose Edit, Redo to un-undo them (if that makes sense).

Edit Cut (Ctrl+X)  This item cuts the currently highlighted text to the Clipboard. That means a copy of it goes to the Clipboard, and the text itself is deleted from your file. The Cut button (represented as scissors) is on the Standard toolbar.

Edit Copy (Ctrl+C)  Editing buttons on the toolbar are grouped next to the scissors (Cut). Edit, Copy copies the currently selected text or item to the Windows Clipboard.

Edit Paste (Ctrl+V)  Choosing this item copies the Clipboard contents at the cursor or replaces the highlighted text with the Clipboard contents if any text is highlighted. The Paste item and button are disabled if there is nothing in the Clipboard in a format appropriate for pasting to the focus window. In addition to text, you can copy and paste menu items, dialog box items, and other resources. The Paste button is on the Standard toolbar.

Edit Delete (Delete)  Edit, Delete clears the selected text or item. If what you deleted is undeletable, the Undo button is enabled, and the last operation is added to the Undo button combo box. Deleted material does not go to the Clipboard and cannot be retrieved except by undoing the delete.

Edit Select All (Ctrl+A)  This item selects everything in the file with focus that can be selected. For example, if a text file has focus, the entire file is selected. If a dialog box has focus, every control on it is selected.

To select many items on a dialog box, you can click the first item and then Ctrl+click each remaining item. It is often faster to use Edit, Select All to select everything and then Ctrl+click to deselect the few items you do not want highlighted.

Edit Find (Ctrl+F)  The Find dialog box shown in Figure C.24 enables you to search for text within the file that currently has the focus. Enter a word or phrase into the Find What edit box. The following check boxes set the options for the search:

FIG. C.24 The Find dialog box is used to find a string within the file that has focus.


TIP: If you highlight a block of text before selecting Edit, Find, that text is put into the Find What box for you. If no text is highlighted, the word or identifier under the cursor is put into the Find What box.

A typical use for the Find dialog box is to enter some text and click the Find Next button until you find the precise occurrence of the text for which you are searching. You may want to combine the Find feature with bookmarks (discussed a little later in this section) and put a bookmark on each line that has an occurrence of the string. Click the Mark All button in the Find dialog box to add temporary, unnamed bookmarks on match lines; they are indicated with a blue oval in the margin.

There is a Find edit box on the Standard toolbar. Enter the text you want to search for in the box and press Enter to search forward. Regular expressions are used if you have turned them on using the Find dialog box. To repeat a search, click in the search box and press Enter. You may wish to add the Find Next or Find Previous buttons to the Standard toolbar using the Tools, Customize menu item described later in this chapter.


Regular Expressions

Many of the find and replace operations within Developer Studio can be made more powerful with regular expressions. For example, if you want to search for a string only at the end of a line, or one of several similar strings, you can do so by constructing an appropriate regular expression, entering it in the Find dialog box, and instructing Developer Studio to use regular expressions for the search. A regular expression is some text combined with special characters that represent things that can't be typed, such as "the end of a line" or "any number" or "three capital letters."

When regular expressions are being used, some characters give up their usual meaning and instead stand in for one or more other characters. Regular expressions in Developer Studio are built from ordinary characters mixed in with these special entries, shown in Table C.1.

You don't have to type these in if you have trouble remembering them. Next to the Find What box is an arrowhead pointing to the right. Click there to open a shortcut menu of all these fields, and click any one of them to insert it into the Find What box. (You need to be able to read these symbols to understand what expression you are building, and there's no arrowhead on the toolbar's Find box.) Remember to select the Regular Expressions box so that these regular expressions are evaluated properly.

Here are some examples of regular expressions:


Table C.1  Regular Expression Entries

Entry Matches
^ Start of the line.
$ End of the line.
. Any single character.
[] Any one of the characters within the brackets (usee for a range, ^ for "except").
\~ Anything except the character that follows next.
* Zero or more of the next character.
+ One or more of the next character.
{ } Doesn't match specially, but saves part of the match string to be used in the replacement string. Up to nine portions can be tagged like this.
[] Either of the characters within the [].
\:a A single letter or number.
\:b Whitespace (tabs or spaces).
\:c A single letter.
\:d A single numerical digit.
\:n An unsigned number.
\:z An unsigned integer.
\:h A hexadecimal number.
\:i A string of characters that meets the rules for C++ identifiers (starts with a letter, number, or underscore).
\:w A string of letters only.
\:q A quoted string surrounded by double or single quotes.
\ Removes the special meaning from the character that follows.

Edit Find in Files  This useful command searches for a word or phrase within a large number of files at once. In its simplest form, shown in Figure C.25, you enter a word or phrase into the Find What edit box, restrict the search to certain types of files in the In Files /File Types box, and choose the folder to conduct the search within the In Folder edit box. The following check boxes in the bottom half of the dialog box set the options for the search:

FIG. C.25 The simplest Find In Files approach searches for a string within a folder and its subfolders.

Using Advanced Text Finding Features  At the bottom right of the Find in Files dialog box is the Advanced button. Clicking it expands the dialog box shown in Figure C.26 and allows you to search several different folders at once.

FIG. C.26 Advanced Find in Files searches for a string within several folders and their subfolders.


TIP: If you highlight a block of text before selecting Find in Files, that text is put into the Find What box for you. If no text is highlighted, the word or identifier under the cursor is put into the Find What box.

The results of the Find in Files command appear in the Find in Files 1 tab (unless you ask for pane 2) of the output window; the output window will be visible after this operation if it was not already. You can resize this window like any other window, by holding the mouse over the border until it becomes a sizing cursor, and you can scroll around within the window in the usual way. Double-clicking a filename in the output list opens that file with the cursor on the line where the match was found.

Edit Replace (Ctrl+H)  This item opens the Replace dialog box, shown in Figure C.27. It is very similar to the Find dialog box but is used to replace the found text with new text. Enter one string into the Find What edit box and the replacement string into the Replace With edit box. The three check boxes--Regular Expression, Match Case, and Match Whole Word Only--have the same meaning as on the Find dialog box (discussed in the previous section). The Replace In radio buttons enable you to restrict the search-and-replace operation to a block of highlighted text, if you prefer.

FIG. C.27 The Replace dialog box is used to replace one string with another.

To see the next match before you agree to replace it, click Find Next. To replace the next match or the match you have just found, click Replace. If you are confident that there won't be any false matches, you can click Replace All to do the rest of the file all at once. (If you realize after you click Replace All that you were wrong, there is always Edit, Undo.)

Edit Go To (Ctrl+G)  The Go To dialog box (see Figure C.28) is a central navigation point. It enables you to go to a particular line number (the default), address, reference, or bookmark, among other things. To use the Go To dialog box, select something from the Go To What list on the left; if Line is selected, enter a line number; if Bookmark is selected, pick the particular bookmark from the combo box; and so on.

FIG. C.28 The Go To dialog box moves you around within your project.

The Go To What box contains the following choices:


TIP: The pushpin in the upper-left corner of this dialog box is used to "pin" it to the screen so that it stays in place after you have gone to the requested location. Click the pin to unpin the dialog box from the screen so that it goes away after the jump.

Edit Bookmarks (Alt+F2)  This item is used to manage the bookmarks within your text files. The bookmark list is shown in Figure C.29. Note that temporary bookmarks set by the Find command are not included in this list.

FIG. C.29 The Bookmark dialog box manages the bookmarks you have set in text files.

To add a named bookmark for the line you are on and have it saved with the file, type a name in the Name box and click Add. To go to a named bookmark, choose it from the list box and click Go To. There are buttons on the Edit toolbar to add or delete a bookmark at the cursor, move to the next or preceding bookmark, and clear all bookmarks in the file.

Edit ActiveX Control in HTML  If you have Visual InterDev installed and are working with an ActiveX control, this menu item will let you edit its settings. Building ActiveX controls is discussed in Chapter 17, "Building an ActiveX Control."

Edit HTML Layout  This item is used to edit an HTML layout with Visual InterDev.

Edit Advanced  Choosing this item opens a cascading menu with the following items:

Edit Breakpoints (Alt+F9)  A breakpoint pauses program execution. The Edit, Breakpoints item displays the Breakpoints dialog box, shown in Figure C.30 and discussed in Appendix D.

FIG. C.30 The Breakpoints dialog box is used in debugging your application.

Edit List Members (Ctrl+Alt+T)  This item is used to "reawaken" Autocomplete for code you have already typed. It opens a list of member variables and functions for the class whose implementation you are editing, as well as global variables and functions. This list is generally too long to be useful.

Edit Type Info (Ctrl+T)  This pops up a little window telling you the type of variable the cursor is on. You can get this window much more easily by pausing the mouse over the variable and waiting a second or two.

Edit Parameter Info (Ctrl+Shift+Space)  This pops up a window reminding you of the parameters taken by the function the cursor is on. Again, this information will pop up if you just pause the mouse over the function name.

Edit Complete Word (Ctrl+Space)  This asks Autocomplete to fill in the word you are typing. If you haven't typed much of it, you may get a dialog box from which to choose the word you want. The Autocomplete dialog box generally only appears after you have typed -> or . to indicate you are looking for a member function or variable. When the function you want to call is a member of the class you are editing, it's annoying to type this--> just to open Autocomplete. Use Ctrl+Space instead.


NOTE: If these options are disabled, check your AutoComplete settings by choosing Tools, Options and clicking the Editor tab, shown in Figure C.55. n

Using the View Menu

The View menu, shown in Figure C.31, collects actions that are related to the appearance of Developer Studio--which windows are open, what toolbars are visible, and so on.

View ScriptWizard  This InterDev-related command is used to edit Web page scripts.

View ClassWizard (Ctrl+W)  ClassWizard is probably the most used tool in Developer Studio.

FIG. C.31 The View menu controls the appearance of Developer Studio.

Whenever you add a resource (menu, dialog box, control, and so on), you connect it to your code with ClassWizard. When you are working with ActiveX, you use ClassWizard to set up properties, methods, and events. If you use custom messages, you use ClassWizard to arrange for them to be caught. You learn how to use ClassWizard starting in Chapter 2.


CAUTION: All changed files are saved when you open ClassWizard, just as they are saved before a compile. If you have been making changes that you may not want saved, don't open ClassWizard.

View Resource Symbols  This item opens the Resource Symbols dialog box, shown in Figure C.32. It displays the resource IDs, such as ID_EDIT_COPY, used in your application. The large list box at the top of the dialog box lists resource IDs, and the smaller box below it reminds you where this resource is used--on a menu, in an accelerator, in the string table, and so on. The buttons along the right side are used to make changes. Click New to create a new resource ID, Delete to delete this resource ID (if it's not in use), Change to change the ID (if it's in use by only one resource), and View Use to open the resource (menu, string table, and so on) that is highlighted in the lower list.

FIG. C.32 The Resource Symbols dialog box displays resource IDs.

View Resource Includes  Choosing this item opens the Resource Includes dialog box, as shown in Figure C.33. It is unusual for you to need to change this generated material. In the rare cases where the resource.h file generated for you is not quite what you need, you can add extra lines with this dialog box.

FIG. C.33 The Resource Includes dialog box lets you insert extra instructions into the file that describes the resources of your project.

View Full Screen  This item hides all the toolbars, menus, Output window, and Project Workspace window, giving you the entire screen as the main working area. One small toolbar appears whose only button is Toggle Full Screen. Click that button or press the Esc key to restore the menus, toolbars, and windows.

View Workspace (Alt+0)  Choosing this item opens the Workspace window, if it is hidden. It does not take away the Workspace window. To hide it, right-click the window and choose Hide, or press Shift+Esc while the window has focus. There is a Workspace button on the Standard toolbar, which hides or displays the window.

View Output (Alt+2)  This item opens the Output window, if it is hidden. To hide the Output window, right-click it and choose Hide, or press Shift+Esc while the window has focus. The Output window opens automatically when you build your project or use Find in Files.

View Debug Windows  This cascading menu deals with windows used while debugging, which are discussed in Appendix D. It contains the following items:

View Properties (Alt+Enter)  Choosing this item opens a property sheet. The property sheets for different items vary widely, as shown in Figures C.34, C.35, and C.36, which illustrate the property sheet for an entire source file, an accelerator table selected in the Project Workspace window, and one key in that accelerator table, respectively.

Property sheets are a powerful way of editing non-source file entities, such as resources. For functions and variables, however, it's usually easier to make the changes in the source file. Some rather obscure effects can only be achieved through property sheets. For example, to turn off syntax coloring for a file, use the property sheet to set the language to None. (The effect will be observed after the window is repainted by Windows.)


TTIP: The property normally disappears as soon as you click something else. If you click the pushpin button in the top-left corner, it stays "pinned" to the screen as you work, displaying the properties of all the entities you are working with.

FIG. C.34 The property sheet for a source file reminds you of the name and size and lets you set the language (used for syntax coloring) and tab size.

FIG. C.35 The property sheet for an accelerator table is where you set the language, enabling you to include multiple tables in one application.

FIG. C.36 The property sheet for an entry in an accelerator table gives you full control over the keystrokes associated with the resource ID.

FIG. C.37 The Insert menu is one way to add items to a project or a file.

Insert

The Insert menu, shown in Figure C.37, collects actions related to inserting something into your project or one of its files.

Insert New Class  Use this item to create a header and source file for a new class and add it to this project. The New Class dialog box is shown in Figure C.38. Note the drop-down box that makes specifying the base class simpler.

Insert New Form  This item generates a CFormView and attaches it to your application. A CFormView can contain controls, such as a combination of a dialog and a view.

Insert Resource (Ctrl+R)  Use this item to add a new resource to your project. The Insert Resource dialog box, shown in Figure C.39, appears. Choose the type of resource to be added and click New.

There are buttons on the Resource toolbar to add a new dialog box, menu, cursor, icon, bitmap, toolbar, accelerator, string table, or version.

FIG. C.38 The New Class dialog box simplifies creating a new class.

FIG. C.39 The Insert Resource dialog box is one way to add resources to your project.

Insert Resource Copy  Use this item to copy an existing resource, changing only the language (for example, from US English to Canadian French) or the condition (for example, building a debug version of a dialog box). Your project will have different language versions of the resource, allowing you to use compiler directives to determine which resource is compiled into the executable.

Insert File As Text  This item reads an entire file from the hard drive into the file you are editing. The text is inserted at the current cursor position.

Insert New ATL Object  When you are creating an ActiveX control with the Active Template Library (ATL), use this item to insert ATL objects into your project. See Chapter 21, "The Active Template Library."

Project

The Project menu, shown in Figure C.40, holds items associated with project maintenance. The items in this menu are listed in the following sections.

Project Set Active Project  If you have several projects in your workspace, this item sets which project is active.

FIG. C.40 The Project menu simplifies project maintenance.

Project Add to Project  This item opens a cascading menu with the following choices:

FIG. C.41 The Insert Files into Project dialog box looks very much like a File Open dialog box.

Project Source Control  This item gathers together a number of tasks related to tracking and controlling revisions to your project source.


See "Using Visual Source Safe," ch 23

Project Dependencies  This item allows you to make one project dependent on another so that when one project is changed, its dependents are rebuilt.

Project Settings (Alt+F7)  This item opens the Project Settings dialog box, which has the following 10 tabs:

FIG. C.42 The General tab of the Project Settings dialog box governs where files are kept.

FIG. C.43 The C/C++ tab of the Project Settings dialog box governs compiler settings in eight categories, starting with General.

FIG. C.44 The Link tab of the Project Settings dialog box governs linker settings in five categories, starting with General.

FIG. C.45 The Resources tab of the Project Settings dialog box governs resources settings, including language.

FIG. C.46 The Browse Info tab of the Project Settings dialog box turns on or off the powerful browse feature.

To see the last few tabs, click the right-pointing arrow at the end of the list of tabs. You can adjust the settings for each configuration (Debug, Release, and so on) separately or all at once. Many of the panes have a Reset button that restores the settings to those you chose when you first created the project.

Build

The Build menu, shown in Figure C.47, holds all the actions associated with compiling, running, and debugging your application.

FIG. C.47 The Build menu is used to compile, link, and debug your application.

The Build menu will be a hub of activity when your are ready to compile and debug. The Build menu item names are listed in the following sections.

Build Compile (Ctrl+F7)  Choosing this item compiles the file with focus. This is a very useful thing to do when you are expecting to find errors or warnings, such as the first time you compile after a lot of changes. For example, if there is an error in a header file that is included in many source files, a typical build produces error messages related to that header file over and over again as each source file is compiled. If there are warnings in one of your source files, a typical build links the project, but you might prefer to stop and correct the warnings. There is a Compile button on the Build toolbar, represented by a stack of papers with an arrow pointing downward.

Build Build (F7)  This item compiles all the changed files in the project and then links them. There is a Build button on the Build toolbar.

Build Rebuild All  This item compiles all files in the project, even those that have not been changed since the last build, and then links them. There are times when a typical build misses a file that should be recompiled; using this item corrects the problem.

Build Batch Build  Typically a project contains at least two configurations: Debug and Release. Usually you work with the Debug configuration, changing, building, testing, and changing the project again until it is ready to be released, and then you build a Release version. If you ever need to build several configurations at once, use this menu item to open the Batch Build dialog box shown in Figure C.48. Choose Build to compile only changed files and Rebuild All to compile all files. If the compiles are successful, links follow. Choose Clean to delete intermediate and output files, leaving only source files.

FIG. C.48 The Batch Build dialog box builds several configurations of your project at once.

Build Clean  This item deletes all the intermediate and output files so that your project directory contains only source files.

Build Start Debug  Debugging is a lengthy topic, discussed in Appendix D.

Build Debugger Remote Connection  It is possible to run a program on one computer and debug it on another. As part of that process, you use this menu item to connect the two computers. This is discussed in Appendix D.

Build Execute (Ctrl+F5)  Choosing the Build, Execute item runs your application without opening the debugger.

Build Set Active Configuration  The Set Active Project Configuration dialog box, shown in Figure C.49, sets which of your configurations is active (typically Debug and Release). The active configuration is built by the Build commands.

FIG. C.49 The Set Active Project Configuration dialog box sets the default configuration.

Build Configurations  Choosing this item opens the Configurations dialog box, shown in Figure C.50. Here you can add or remove configurations. Use Project Settings to change the settings for the new configuration.

FIG. C.50 The Configurations dialog box lets you add to the standard Debug and Release configurations.

Build Profiler  The profiler is a powerful tool to identify bottlenecks in your applications. It is discussed in Chapter 24.

Tools

The Tools menu, shown in Figure C.51, simplifies access to add-in tools and holds some odds-and-ends leftover commands that don't fit on any other menu.

FIG. C.51 The Tools menu organizes add-in tools.

Tools Source Browser (Alt+F12)  The browser is a very powerful addition to Developer Studio; you use it whenever you go to a definition or reference, check a call graph, or otherwise explore the relationships among the classes, functions, and variables in your project. However, it's unusual to access the browser through this menu item, which opens the Browse dialog box shown in Figure C.52. You are more likely to use Edit, Go To, a Go To item from the right-click menu, or one of the 11 buttons on the Browse toolbar.

FIG. C.52 The Browse dialog box is a less common way to browse your objects, functions, and variables.

Tools Close Source Browser File  Whenever you rebuild your project, your browse file is rebuilt, too. If you rebuild your project outside Developer Studio with a tool such as NMAKE, you should close the browse file first (with this menu choice) so that it can be updated by that tool.

Accessory Tools  A number of tools are added to the Tools menu when you install Visual C++, and you can add more tools with the Customize menu item, discussed next.

Tools Customize  Choosing this option opens the Customize dialog box. The Commands pane of that dialog box is shown in Figure C.53 with the File buttons showing. The 11 buttons correspond to items on the File menu, and if you would like one of those items on any toolbar, simply drag it from the dialog box to the appropriate place on the toolbar and release it. The list box on the left side of the Toolbar tab lets you choose other menus, each with a collection of toolbar buttons you can drag to any toolbar. Remember that the menu bar is also a toolbar to which you can drag buttons, if you want.

FIG. C.53 The Commands pane of the Customize dialog box lets you build your own toolbars.


TIP: If your toolbars are messed up, with extra buttons or missing buttons or both, the Reset All Menus button on this dialog box returns objects to their normal state.

The Toolbars pane, shown in Figure C.54, is one way to control which toolbars are displayed. As you can see, you can also suppress ToolTips if they annoy you or turn on larger toolbar buttons if you have the space for them. (The standard toolbar in Figure C.54 has large buttons.)

FIG. C.54 The Toolbars tab of the Customize dialog box is one way to turn a toolbar on or off, and the only way to govern ToolTips and button size.

The Tools tab lets you add programs to the Tools menu, and the Keyboard tab lets you change the keyboard shortcuts for commands or add shortcuts for commands without them. The Add-Ins and Macro Files tab lets you add macros, which are written in VBScript and can automate many Developer Studio tasks, or add-ins, which can be written in any language and also automate Developer Studio tasks, to your workspace.

Tools Options  This item gathers up a great number of settings and options that relate to Developer Studio itself. For example, Figure C.55 shows the Editor tab of the Options dialog box. If there is a feature of Developer Studio you don't like, you can almost certainly change it within this large dialog box.

FIG. C.55 The Editor tab of the Options dialog box is where you change editor settings.

The tabs are as follows:

FIG. C.56 The Workspace tab of the Options dialog box sets which views dock and which float, as well as reload options.


TIP: If you work on the same project all the time, check the Reload Last Workspace at Startup box on the Workspace tab of the Option dialog box. Loading the Developer Studio and the last project then becomes a one-step process; simply loading the Developer Studio will load the last project, too. If you work on a variety of different projects, uncheck this box so that Developer Studio comes up more quickly.

Tools Macro  This item opens the Macro dialog box, shown in Figure C.57. Here you can record or play back simple macros, or edit a set of recorded keystrokes by adding VBScript statements.

Tools Record Quick Macro  If you don't want to name your macro and use it in many different projects but want to speed up a task right now, record a quick macro and you won't have to name it, describe it, or save it in a file. You can have only one "quick macro" at a time: Recording a new one will wipe out the old one.

Tools Play Quick Macro  This item plays your most recently recorded quick macro.

Window

The Window menu, shown in Figure C.58, controls the windows in the main working area of Developer Studio.

Window New Window  Choosing this item opens another window containing the same source file as the window with focus. The first window's title bar is changed, with :1 added after the filename; in the new window, :2 is added after the filename. Changes made in one window are immediately reflected in the other. The windows can be scrolled, sized, and closed independently.

FIG. C.57 The Macro dialog box is the nerve center for creating, editing, and using macros.

FIG. C.58 The Window menu controls the windows in the main working area.

Window Split  Choosing this window puts cross hairs over the file with focus; when you click the mouse, the window is split into four panes along the lines of these cross hairs. You can drag these boundaries about in the usual way if they are not in the right place. Scrolling one pane scrolls its companion pane as well so that the views stay in sync. To unsplit a window, drag a boundary right to the edge of the window and it disappears. Drag away both the horizontal and vertical boundaries, and the window is no longer split.

Window Docking View (Alt+F6)  This menu item governs whether the window with focus is a docking view. It is disabled when the main working area has focus.

Window Close  Choosing this item closes the window with focus and its associated file. If you have any unsaved changes, you are asked whether to save them.

Window Close All  Choosing this item closes all the windows in the main working area. If you have any unsaved changes, you are asked whether to save them.

Window Next (Ctrl+Tab)  This item switches focus to the next window. The order of the windows can be determined by looking at the list of open windows at the bottom of the menu. If you have a number of windows open at once, you can cycle among them using Ctrl+Tab. This is a great way to get back to where you were after going to another file to look at something or copy some code.

Window Previous (Ctrl+Shift+Tab)  This item switches focus to the previous window.

Window Cascade  This item arranges all the windows in the main working area in the familiar cascade pattern, like the one shown in Figure C.59. Minimized windows are not restored and cascaded.

FIG. C.59 Arranging windows in a cascade makes it easy to switch between them.

Window Tile Horizontally  This item arranges all the windows in the main working area so that each is the full width of the working area, as shown in Figure C.60. The file that had focus when you chose this item is at the top.

Window Tile Vertically  This item arranges all the windows in the main working area so that each is the full height of the working area, as shown in Figure C.61. The file that had focus when you chose this item is at the left.

Open Windows  The bottom section of this menu lists the windows in the main working area so that you can move among them even when they are maximized. If there are more than nine open windows, only the first nine are listed. The rest can be reached by choosing Window, Windows.

FIG. C.60 When windows are tiled horizontally, each is the full width of the main working area.

FIG. C.61 When windows are tiled vertically, each is the full height of the main working area.

Window Windows  This item opens the Windows dialog box, shown in Figure C.62. From here you can close, save, or activate any window.

FIG. C.62 The Windows dialog box allows access to any window in the main working area.

Help

The Help system for Developer Studio is a separate product. Choosing items on this menu, shown in Figure C.63, or pressing F1 activates the Help system, typically the Microsoft Developer Network, MSDN.

FIG. C.63 The Help menu is your doorway to the help system.

Help Contents  This item starts MSDN if it is not running, or switches focus to MSDN and displays the Table of Contents tab.

Help Search  This item starts MSDN if it is not running, or switches focus to MSDN and displays the Search tab.

Help Index  This item starts MSDN if it is not running, or switches focus to MSDN and displays the Index tab.

Help Use Extension Help  This item, when set, triggers a different Help system instead of MSDN. It's a good way for your group to include your own documentation, but you'll want to toggle extension help off again so that F1 will search MSDN for your error messages or classnames.

Help Readme  This item displays the "read me" file for Visual C++.

Help Keyboard Map  This item does not involve MSDN. Choosing it opens the Help Keyboard dialog box, shown in Figure C.64. Use the drop-down box at the top to choose the commands for which you want to see keystrokes: Bound commands (those with keystrokes assigned), All commands, or commands from the File, Edit, View, Insert, Build, Debug, Tools, Window, or Help menus. Commands related to Images and Layout are also available.

FIG. C.64 The Help Keyboard dialog box displays the keystrokes associated with commands.

Click the title bars across the top of the table to sort the display by that column. Keystrokes cannot be changed here; choose Tools, Customize and use the Keyboard tab to change keystrokes.

Help Tip of the Day  Choosing this item opens the Tip of the Day, like that in Figure C.65. Some are Windows tips; others are specific to Developer Studio. If you can't wait to see a new tip each time you open Developer Studio, click Next Tip to scroll through the list. If you are annoyed by these tips on startup, deselect the Show Tips at Startup box.

FIG. C.65 The Tip of the Day is a great way to learn more about Developer Studio.

Help Technical Support  If you think you need technical support, start here. Not only do you learn how to get that support, but you may also find the answer to your question.

Help Microsoft on the Web  One of the ways Microsoft supplies information about Developer Studio and other products is through the World Wide Web. Choosing this item opens a cascading menu with a list of Web sites. Choosing any of these displays the pages in your default Web browser.

Help About Visual C++  Choosing this item opens the About box for Visual C++, which includes, among other information, your Product ID.

Reviewing Toolbars

After you are familiar with the sorts of actions you are likely to request of Developer Studio, the toolbars save you a lot of time. Instead of choosing File, Open, which takes two clicks and a mouse move, it is simpler to just click the Open button on the toolbar. There are, however, 11 toolbars plus a menu bar in this product, and that means a lot of little icons to learn. In this section, you will see each toolbar and which menu items the buttons correspond to.

Figure C.66 shows all the toolbars that are available in Developer Studio. The quickest way to turn several toolbars on and off is with the Toolbars dialog box, which you can also use to turn ToolTips on or off and set whether the tips include the shortcut keys for the command. Any of these toolbars can dock against any of the four edges of the working area, as shown in Figure C.67. To move a docked toolbar, drag it by the wrinkles--the two vertical bars at the far right. You move an undocked toolbar like any other window. When it nears the edge of the main working area, the shape change shows you it will dock. Take some time to experiment moving toolbars around until you find a configuration that suits you.

FIG. C.66 Developer Studio has 11 toolbars and a menu bar, shown here floating.

Two of the most important toolbars are the Standard and the Build Mini-bar. These are discussed in the sections that follow. For a full description of what each button does, refer to the section earlier in this chapter for the corresponding menu item.

Standard Toolbar

The Standard Toolbar helps you maintain and edit text and files in your workspace. Table C.2 names each Standard tool button and its equivalent menu operation.

FIG. C.67 Developer Studio toolbars can dock against any edge.

Table C.2  Standard Toolbar Buttons and Equivalent Menu Operations

Button Name Menu Equivalent
New Text File File, New
Open File, Open
Save File, Save
Save All File, Save All
Cut Edit, Cut
Copy Edit, Copy
Paste Edit, Paste
Undo Edit, Undo
Redo Edit, Redo
Workspace View, Workspace
Output View, Output
Window List Window, Windows
Find in Files Edit, Find in Files
Find Edit, Find
Search Help, Search

Build Mini-bar

The names for the Build Mini-bar buttons, which are related to compiling and debugging, are defined in Table C.3.

Table C.3  Build Mini-Bar Buttons and Equivalent Menu Commands

Button Name Menu Equivalent
Compile Build, Compile
Build Build, Build
Stop Build Build, Stop Build
Execute Build, Execute
Go Build, Start Debug, Go
Insert/Remove Breakpoint N/A

Using Other Toolbars

You can display any or all of the toolbars, add and remove buttons to them, and generally make Developer Studio into a product that works the way you work. Experiment and see what simplifies your software development effort.


Previous chapterNext chapterContents

© Copyright, Macmillan Computer Publishing. All rights reserved.