![]() |
![]() |
![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() |
![]() |
To access the contents, click the chapter and section titles.
Fast Track Visual C++ 6.0 Programming
Creating the KeysSDI ProjectThe KeysSDI program will be a little more real-world than the HelloDlg program. In this program, well read the keys typed by the user, store them, and display them in the programs single window. Use the Visual C++ AppWizard to create a new EXE project named KeysSDI, selecting the Single Document option in the AppWizards first screen and then clicking Finish. This creates a new single-window program named KeysSDI. Visual C++ has also created a ReadMe.txt file outlining the parts of the project. Heres whats in ReadMe.txt: ======================================================================== MICROSOFT FOUNDATION CLASS LIBRARY : KeysSDI ======================================================================== AppWizard has created this KeysSDI application for you. This application not only demonstrates the basics of using the Microsoft Foundation Classes but is also a starting point for writing your application. This file contains a summary of what you will find in each of the files that make up your KeysSDI application. KeysSDI.dsp This file (the project file) contains information at the project level and is used to build a single project or subproject. Other users can share the project (.dsp) file, but they should export the makefiles locally. KeysSDI.h This is the main header file for the application. It includes other project specific headers (including Resource.h) and declares the CKeysSDIApp application class. KeysSDI.cpp This is the main application source file that contains the application class CKeysSDIApp. KeysSDI.rc This is a listing of all of the Microsoft Windows resources that the program uses. It includes the icons, bitmaps, and cursors that are stored in the RES subdirectory. This file can be directly edited in Microsoft Visual C++. res\KeysSDI.ico This is an icon file, which is used as the applications icon. This icon is included by the main resource file KeysSDI.rc. res\KeysSDI.rc2 This file contains resources that are not edited by Microsoft Visual C++. You should place all resources not editable by the resource editor in this file. KeysSDI.clw This file contains information used by ClassWizard to edit existing classes or add new classes. ClassWizard also uses this file to store information needed to create and edit message maps and dialog data maps and to create prototype member functions. ///////////////////////////////////////////////////////////////////////////// For the main frame window: MainFrm.h, MainFrm.cpp These files contain the frame class CMainFrame, which is derived from CFrameWnd and controls all SDI frame features. res\Toolbar.bmp This bitmap file is used to create tiled images for the toolbar. The initial toolbar and status bar are constructed in the CMainFrame class. Edit this toolbar bitmap using the resource editor and update the IDR_MAINFRAME TOOLBAR array in KeysSDI.rc to add toolbar buttons. ///////////////////////////////////////////////////////////////////////////// AppWizard creates one document type and one view: KeysSDIDoc.h, KeysSDIDoc.cpp - the document These files contain your CKeysSDIDoc class. Edit these files to add your special document data and to implement file saving and loading (via CKeysSDIDoc::Serialize). KeysSDIView.h, KeysSDIView.cpp - the view of the document These files contain your CKeysSDIView class. CKeysSDIView objects are used to view CKeysSDIDoc objects. ///////////////////////////////////////////////////////////////////////////// Other standard files: StdAfx.h, StdAfx.cpp These files are used to build a precompiled header (PCH) file named KeysSDI.pch and a precompiled types file named StdAfx.obj. Resource.h This is the standard header file, which defines new resource IDs. Microsoft Visual C++ reads and updates this file. ///////////////////////////////////////////////////////////////////////////// Other notes: AppWizard uses TODO: to indicate parts of the source code you should add to or customize. If your application uses MFC in a shared DLL, and your application is in a language other than the operating systems current language, you will need to copy the corresponding localized resources MFC40XXX.DLL from the Microsoft Visual C++ CD-ROM onto the system or system32 directory, and rename it to be MFCLOC.DLL. (XXX stands for the language abbreviation. For example, MFC40DEU.DLL contains resources translated to German.) If you dont do this, some of the UI elements of your application will remain in the language of the operating system. ///////////////////////////////////////////////////////////////////////////// The actual programming is easy to do, so lets do that now. After we get the program working, well dissect it section by section to review the parts of a Visual C++ program. Storing Keys in KeysSDITo start, well set up space in memory for the string of characters that the user types. Click the FileView tab in Visual C++ to display an overview of the project in the Project window (the window on the left in the Visual C++ IDE) file by file and open the folder marked Header Files, double-clicking the entry KeysSDIDoc.h to open that file. This file is the header file for the programs document object (well review this and other objects later in this chapter). We set aside an MFC CString object named text for the string data well store in this program by adding the following line of code to KeysSDIDoc.h: // KeysSDIDoc.h : interface of the CKeysSDIDoc class // ///////////////////////////////////////////////////////////////////////////// #if !defined(AFX_KEYSSDIDOC_H__701B1ADB_9BB7_11D1_887F_D42B07C10710__INCLUDED_) #define AFX_KEYSSDIDOC_H__701B1ADB_9BB7_11D1_887F_D42B07C10710__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 class CKeysSDIDoc : public CDocument { protected: // create from serialization only CKeysSDIDoc(); DECLARE_DYNCREATE(CKeysSDIDoc) // Attributes public: CString text; ⇐ // Operations public: . . . We will also initialize this new object to an empty string, , in the constructor CKeysSDIDoc(), which is in the file KeysSDIDoc.cpp. Open the Source Files folder now and open KeysSDIDoc.cpp, adding this line of code: // KeysSDIDoc.cpp : implementation of the CKeysSDIDoc class // #include stdafx.h #include KeysSDI.h #include KeysSDIDoc.h #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CKeysSDIDoc IMPLEMENT_DYNCREATE(CKeysSDIDoc, CDocument) BEGIN_MESSAGE_MAP(CKeysSDIDoc, CDocument) //{{AFX_MSG_MAP(CKeysSDIDoc) // NOTE - the ClassWizard will add and remove mapping macros here. // DO NOT EDIT what you see in these blocks of generated code! //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CKeysSDIDoc construction/destruction CKeysSDIDoc::CKeysSDIDoc() { text = ; ⇐ } . . .
|
![]() |
Products | Contact Us | About Us | Privacy | Ad Info | Home
Use of this site is subject to certain Terms & Conditions, Copyright © 1996-2000 EarthWeb Inc. All rights reserved. Reproduction whole or in part in any form or medium without express written permission of EarthWeb is prohibited. Read EarthWeb's privacy statement. |