Click Here!
home account info subscribe login search My ITKnowledge FAQ/help site map contact us


 
Brief Full
 Advanced
      Search
 Search Tips
To access the contents, click the chapter and section titles.

Fast Track Visual C++ 6.0 Programming
(Publisher: John Wiley & Sons, Inc.)
Author(s): Steve Holzner
ISBN: 0471312908
Publication Date: 09/01/98

Bookmark It

Search this book:
 
Previous Table of Contents Next


Creating the KeysSDI Project

The KeysSDI program will be a little more real-world than the HelloDlg program. In this program, we’ll read the keys typed by the user, store them, and display them in the program’s single window. Use the Visual C++ AppWizard to create a new EXE project named KeysSDI, selecting the Single Document option in the AppWizard’s 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. Here’s what’s 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 application’s 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 system’s 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
don’t 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 let’s do that now. After we get the program working, we’ll dissect it section by section to review the parts of a Visual C++ program.

Storing Keys in KeysSDI

To start, we’ll 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 program’s document object (we’ll review this and other objects later in this chapter). We set aside an MFC CString object named text for the string data we’ll 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 = “”;                                            ⇐
}
    .
    .
    .


Previous Table of Contents Next


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.