Microsoft Visual C++ è MFC. Ïðîãðàììèðîâàíèå äëÿ Win95 è WinNT


Ðåñóðñû ïðèëîæåíèÿ Dater


 ôàéëå ðåñóðñîâ ïðèëîæåíèÿ Dater îïðåäåëåíû ìåíþ, ïàíåëü óïðàâëåíèÿ è òàáëèöà êëàâèø àêñåëåðàòîðîâ IDR_MAINFRAME, øàáëîí äèàëîãîâîé ïàíåëè IDD_DATER_FORM, êîòîðûé èñïîëüçóåòñÿ îêíîì ïðîñìîòðà è øàáëîí èíôîðìàöèîííîé ïàíåëè IDD_ABOUTBOX.  ôàéëå ðåñóðñîâ òàêæå ðàñïîëîæåíû ñòðîêîâûå ðåñóðñû, îïèñûâàþùèå ñòðîêè ìåíþ, êíîïêè ïàíåëåé óïðàâëåíèÿ è èíäèêàòîðû ïàíåëè ñîñòîÿíèÿ. Ìû ïðèâåëè èñõîäíûé òåêñò ôàéëà Dater.rc â ëèñòèíãå 5.3.

Ëèñòèíã 5.3. Ôàéë Dater.rc

//Microsoft Developer Studio generated resource script.

//

#include "resource.h"

#define APSTUDIO_READONLY_SYMBOLS

//////////////////////////////////////////////////////////////

//

// Generated from the TEXTINCLUDE 2 resource.

//

#include "afxres.h"

//////////////////////////////////////////////////////////////

#undef APSTUDIO_READONLY_SYMBOLS



//////////////////////////////////////////////////////////////

// English (U.S.) resources

//#if !defined(AFX_RESOURCE_DLL) defined(AFX_TARG_ENU)

//#ifdef _WIN32

//LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US

//#pragma code_page(1252)

//#endif //_WIN32

#ifdef APSTUDIO_INVOKED

//////////////////////////////////////////////////////////////

//

// TEXTINCLUDE

//

1 TEXTINCLUDE DISCARDABLE

BEGIN

    "resource.h\0"

END

2 TEXTINCLUDE DISCARDABLE

BEGIN

    "#include ""afxres.h""\r\n"

    "\0"

END

3 TEXTINCLUDE DISCARDABLE

BEGIN

   "#define _AFX_NO_SPLITTER_RESOURCES\r\n"

   "#define _AFX_NO_OLE_RESOURCES\r\n"

   "#define _AFX_NO_TRACKER_RESOURCES\r\n"

   "#define _AFX_NO_PROPERTY_RESOURCES\r\n"

   "\r\n"

   "#if !defined(AFX_RESOURCE_DLL)defined(AFX_TARG_ENU)\r\n"

   "#ifdef _WIN32\r\n"

   "LANGUAGE 9, 1\r\n"

   "#pragma code_page(1252)\r\n"

   "#endif\r\n"

   "#include ""res\\Dater.rc2""  // non-Microsoft Visual C++


                                 // edited resources\r\n"

   "#include ""afxres.rc""       // Standard components\r\n"

   "#include ""afxdb.rc""        // Database resources\r\n"

   "#endif\0"

END

#endif    // APSTUDIO_INVOKED

//////////////////////////////////////////////////////////////

//

// Icon

//

IDR_MAINFRAME   ICON   DISCARDABLE   "res\\Dater.ico"

IDR_DATERTYPE   ICON   DISCARDABLE   "res\\DaterDoc.ico"

//////////////////////////////////////////////////////////////

//

// Bitmap

//

IDR_MAINFRAME   BITMAP  MOVEABLE PURE   "res\\Toolbar.bmp"

//////////////////////////////////////////////////////////////

//

// Toolbar

//

IDR_MAINFRAME TOOLBAR DISCARDABLE  16, 15

BEGIN

    BUTTON      ID_EDIT_CUT

    BUTTON      ID_EDIT_COPY

    BUTTON      ID_EDIT_PASTE

    SEPARATOR

    BUTTON      ID_FILE_PRINT

    SEPARATOR

    BUTTON      ID_RECORD_FIRST

    BUTTON      ID_RECORD_PREV

    BUTTON      ID_RECORD_NEXT

    BUTTON      ID_RECORD_LAST

    SEPARATOR

    BUTTON      ID_APP_ABOUT

END

//////////////////////////////////////////////////////////////

//

// Menu

//

IDR_MAINFRAME MENU PRELOAD DISCARDABLE

BEGIN

   POPUP "&File"

   BEGIN

       MENUITEM "E&xit",                ID_APP_EXIT

   END

   POPUP "&Edit"

   BEGIN

      MENUITEM "&Undo\tCtrl+Z",         ID_EDIT_UNDO

      MENUITEM SEPARATOR

      MENUITEM "Cu&t\tCtrl+X",          ID_EDIT_CUT

      MENUITEM "&Copy\tCtrl+C",         ID_EDIT_COPY

      MENUITEM "&Paste\tCtrl+V",        ID_EDIT_PASTE

   END

   POPUP "&Record"

   BEGIN

      MENUITEM "&First Record",         ID_RECORD_FIRST

      MENUITEM "&Previous Record",      ID_RECORD_PREV

      MENUITEM "&Next Record",          ID_RECORD_NEXT



      MENUITEM "&Last Record",          ID_RECORD_LAST

   END

   POPUP "&View"

   BEGIN

      MENUITEM "&Toolbar",              ID_VIEW_TOOLBAR

      MENUITEM "&Status Bar",           ID_VIEW_STATUS_BAR

   END

   POPUP "&Help"

   BEGIN

      MENUITEM "&About Dater...",       ID_APP_ABOUT

   END

END

//////////////////////////////////////////////////////////////

//

// Accelerator

//

IDR_MAINFRAME ACCELERATORS PRELOAD MOVEABLE PURE

BEGIN

    "Z",            ID_EDIT_UNDO,           VIRTKEY, CONTROL

    "X",            ID_EDIT_CUT,            VIRTKEY, CONTROL

    "C",            ID_EDIT_COPY,           VIRTKEY, CONTROL

    "V",            ID_EDIT_PASTE,          VIRTKEY, CONTROL

    VK_BACK,        ID_EDIT_UNDO,           VIRTKEY, ALT

    VK_DELETE,      ID_EDIT_CUT,            VIRTKEY, SHIFT

    VK_INSERT,      ID_EDIT_COPY,           VIRTKEY, CONTROL

    VK_INSERT,      ID_EDIT_PASTE,          VIRTKEY, SHIFT

    VK_F6,          ID_NEXT_PANE,           VIRTKEY

    VK_F6,          ID_PREV_PANE,           VIRTKEY, SHIFT

END

//////////////////////////////////////////////////////////////

//

// Dialog

//

IDD_ABOUTBOX DIALOG DISCARDABLE  0, 0, 217, 55

STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU

CAPTION "About Dater"

FONT 8, "MS Sans Serif"

BEGIN

   ICON            IDR_MAINFRAME,IDC_STATIC,11,17,20,20

   LTEXT           "Dater Version 1.0",

                   IDC_STATIC,40,10,119,8,SS_NOPREFIX

   LTEXT           "Copyright © 1996",IDC_STATIC,40,25,119,8

   DEFPUSHBUTTON   "OK",IDOK,178,7,32,14,WS_GROUP

END

IDD_DATER_FORM DIALOG DISCARDABLE  0, 0, 201, 101

STYLE WS_CHILD

FONT 8, "MS Sans Serif"

BEGIN

    LTEXT           "E-Mail",IDC_STATIC,5,35,20,8

    LTEXT           "Priority",IDC_STATIC,5,86,22,8



    EDITTEXT        IDC_NAME,35,5,160,15,ES_AUTOHSCROLL

    LTEXT           "Name",IDC_STATIC,5,10,20,8

    EDITTEXT        IDC_ADDRESS,35,30,160,15,ES_AUTOHSCROLL

    EDITTEXT        IDC_PRIORITY,35,80,80,15,ES_AUTOHSCROLL

    LTEXT           "Phone",IDC_STATIC,5,60,22,8

    EDITTEXT        IDC_PHONE,35,55,80,15,ES_AUTOHSCROLL

END

#ifndef _MAC

//////////////////////////////////////////////////////////////

//

// Version

//

VS_VERSION_INFO VERSIONINFO

 FILEVERSION 1,0,0,1

 PRODUCTVERSION 1,0,0,1

 FILEFLAGSMASK 0x3fL

#ifdef _DEBUG

 FILEFLAGS 0x1L

#else

 FILEFLAGS 0x0L

#endif

 FILEOS 0x4L

 FILETYPE 0x1L

 FILESUBTYPE 0x0L

BEGIN

    BLOCK "StringFileInfo"

    BEGIN

        BLOCK "040904B0"

        BEGIN

            VALUE "CompanyName", "\0"

            VALUE "FileDescription", "DATER MFC Application\0"

            VALUE "FileVersion", "1, 0, 0, 1\0"

            VALUE "InternalName", "DATER\0"

            VALUE "LegalCopyright", "Copyright © 1996\0"

            VALUE "LegalTrademarks", "\0"

            VALUE "OriginalFilename", "DATER.EXE\0"

            VALUE "ProductName", "DATER Application\0"

            VALUE "ProductVersion", "1, 0, 0, 1\0"

        END

    END

    BLOCK "VarFileInfo"

    BEGIN

        VALUE "Translation", 0x409, 1200

    END

END

#endif    // !_MAC

//////////////////////////////////////////////////////////////

//

// DESIGNINFO

//

#ifdef APSTUDIO_INVOKED

GUIDELINES DESIGNINFO DISCARDABLE

BEGIN

    IDD_ABOUTBOX, DIALOG

    BEGIN

        LEFTMARGIN, 7

        RIGHTMARGIN, 210

        TOPMARGIN, 7

        BOTTOMMARGIN, 48

    END

    IDD_DATER_FORM, DIALOG

    BEGIN

        LEFTMARGIN, 7

        RIGHTMARGIN, 194



        TOPMARGIN, 7

        BOTTOMMARGIN, 94

    END

END

#endif    // APSTUDIO_INVOKED

//////////////////////////////////////////////////////////////

//

// String Table

//

STRINGTABLE DISCARDABLE

BEGIN

    IDP_FAILED_OPEN_DATABASE "Cannot open database."

END

STRINGTABLE PRELOAD DISCARDABLE

BEGIN

   IDR_MAINFRAME "Dater\n\nDater\n\n\n

                  Dater.Document\nDater Document"

END

STRINGTABLE PRELOAD DISCARDABLE

BEGIN

    AFX_IDS_APP_TITLE       "Dater"

    AFX_IDS_IDLEMESSAGE     "Ready"

END

STRINGTABLE DISCARDABLE

BEGIN

    ID_INDICATOR_EXT        "EXT"

    ID_INDICATOR_CAPS       "CAP"

    ID_INDICATOR_NUM        "NUM"

    ID_INDICATOR_SCRL       "SCRL"

    ID_INDICATOR_OVR        "OVR"

    ID_INDICATOR_REC        "REC"

END

STRINGTABLE DISCARDABLE

BEGIN

    ID_APP_ABOUT   "Display program information, version

                    number and copyright\nAbout"

    ID_APP_EXIT    " Quit the application; prompts to save

                    documents\nExit"

END

STRINGTABLE DISCARDABLE

BEGIN

    ID_FILE_MRU_FILE1       "Open this document"

    ID_FILE_MRU_FILE2       "Open this document"

    //...

    ID_FILE_MRU_FILE16      "Open this document"

END

STRINGTABLE DISCARDABLE

BEGIN

    ID_NEXT_PANE   "Switch to the next window pane\nNext Pane"

    ID_PREV_PANE   "Switch back to the previous window pane\n

                    Previous Pane"

END

STRINGTABLE DISCARDABLE

BEGIN

   ID_WINDOW_SPLIT "Split the active window into panes\nSplit"

END

STRINGTABLE DISCARDABLE

BEGIN

   ID_EDIT_CLEAR        "Erase the selection\nErase"

   ID_EDIT_CLEAR_ALL    "Erase everything\nErase All"

   ID_EDIT_COPY         "Copy the selection and put it on the



                         Clipboard\nCopy"

   ID_EDIT_CUT          " Cut the selection and put it on the

                         Clipboard\nCut"

   ID_EDIT_FIND         "Find the specified text\nFind"

   ID_EDIT_PASTE        "Insert Clipboard contents\nPaste"

   ID_EDIT_REPEAT       "Repeat the last action\nRepeat"

   ID_EDIT_REPLACE      "Replace specific text with different

                         text\nReplace"

   ID_EDIT_SELECT_ALL   "Select the entire document\n

                         Select All"

   ID_EDIT_UNDO      "Undo the last action\nUndo"

   ID_EDIT_REDO      "Redo the previously undone action\nRedo"

END

STRINGTABLE DISCARDABLE

BEGIN

   ID_VIEW_TOOLBAR     "Show or hide the toolbar\n

                        Toggle ToolBar"

    ID_VIEW_STATUS_BAR "Show or hide the status bar\n

                        Toggle StatusBar"

END

STRINGTABLE DISCARDABLE

BEGIN

   ID_RECORD_FIRST  "Move to first record\nFirst Record"

   ID_RECORD_LAST   "Move to final record\nLast Record"

   ID_RECORD_NEXT   "Move to next record\nNext Record"

   ID_RECORD_PREV   "Move to previous record\nPrevious Record"

END

STRINGTABLE DISCARDABLE

BEGIN

   AFX_IDS_SCSIZE        "Change the window size"

   AFX_IDS_SCMOVE        "Change the window position"

   AFX_IDS_SCMINIMIZE    "Reduce the window to an icon"

   AFX_IDS_SCMAXIMIZE    "Enlarge the window to full size"

   AFX_IDS_SCNEXTWINDOW  "Switch to the next document window"

   AFX_IDS_SCPREVWINDOW  "Switch to the previous document

                          window"

   AFX_IDS_SCCLOSE       "Close the active window and prompts

                          to save the documents"

END

STRINGTABLE DISCARDABLE

BEGIN

    AFX_IDS_SCRESTORE    "Restore the window to normal size"



    AFX_IDS_SCTASKLIST   "Activate Task List"

END

//#endif    // English (U.S.) resources

//////////////////////////////////////////////////////////////

#ifndef APSTUDIO_INVOKED

//////////////////////////////////////////////////////////////

//

// Generated from the TEXTINCLUDE 3 resource.

//

#define _AFX_NO_SPLITTER_RESOURCES

#define _AFX_NO_OLE_RESOURCES

#define _AFX_NO_TRACKER_RESOURCES

#define _AFX_NO_PROPERTY_RESOURCES

#if !defined(AFX_RESOURCE_DLL) defined(AFX_TARG_ENU)

#ifdef _WIN32

LANGUAGE 9, 1

#pragma code_page(1252)

#endif

#include "res\Dater.rc2"  // non-Microsoft Visual C++ edited resources

#include "afxres.rc"         // Standard components

#include "afxdb.rc"          // Database resources

#endif

//////////////////////////////////////////////////////////////

#endif    // not APSTUDIO_INVOKED

Èäåíòèôèêàòîðû ðåñóðñîâ ïðèëîæåíèÿ Dater îïðåäåëåíû â ôàéëå resource.h. Ýòîò ôàéë ñîçäàåòñÿ àâòîìàòè÷åñêè ðåäàêòîðîì ðåñóðñîâ Microsoft Visual C++. Èñõîäíûé òåêñò ôàéëà resource.h ïðåäñòàâëåí â ëèñòèíãå 3.15.

Ëèñòèíã 5.4. Ôàéë resource.h

//{{NO_DEPENDENCIES}}

// Microsoft Developer Studio generated include file.

// Used by Dater.rc

//

#define IDD_ABOUTBOX                    100

#define IDD_DATER_FORM                  101

#define IDP_FAILED_OPEN_DATABASE        103

#define IDR_MAINFRAME                   128

#define IDR_DATERTYPE                   129

#define IDC_NAME                        1000

#define IDC_ADDRESS                     1001

#define IDC_PRIORITY                    1002

#define IDC_PHONE                       1003

// Next default values for new objects

//

#ifdef APSTUDIO_INVOKED

#ifndef APSTUDIO_READONLY_SYMBOLS

#define _APS_3D_CONTROLS                1

#define _APS_NEXT_RESOURCE_VALUE        130

#define _APS_NEXT_COMMAND_VALUE         32771

#define _APS_NEXT_CONTROL_VALUE         1004

#define _APS_NEXT_SYMED_VALUE           101

#endif



#endif

Íàèáîëüøèé èíòåðåñ â ôàéëå ðåñóðñîâ ïðèëîæåíèÿ Dater ïðåäñòàâëÿþò ñòðîêè ìåíþ Record è ñîîòâåòñòâóþùèå èì êíîïêè ïàíåëè óïðàâëåíèÿ. Ýòè ñòðîêè è êíîïêè ïîçâîëÿþò ïðîñìàòðèâàòü â îêíå ïðèëîæåíèÿ âñå çàïèñè áàçû äàííûõ.

Ñòðîêà ìåíþ Record

Èäåíòèôèêàòîð

Îïèñàíèå

First Record

ID_RECORD_FIRST

Ïåðåéòè ê ïåðâîé çàïèñè

Previous Record

ID_RECORD_PREV

Ïåðåéòè ê ïðåäûäóùåé çàïèñè

Next Record

ID_RECORD_NEXT

Ïåðåéòè ê ñëåäóþùåé çàïèñè

Last Record

ID_RECORD_LAST

Ïåðåéòè ê ïîñëåäíåé çàïèñè

Êîìàíäíûå ñîîáùåíèÿ ñ èäåíòèôèêàòîðàìè ID_RECORD_FIRST, ID_RECORD_PREV, ID_RECORD_NEXT è ID_RECORD_LAST îáðàáàòûâàþòñÿ âèðòóàëüíûì ìåòîäîì OnMove êëàññà îêíà ïðîñìîòðà CRecordView.

Ïî óìîë÷àíèþ, ìåòîä OnMove ñ÷èòûâàåò ñîîòâåòñòâóþùóþ çàïèñü èç áàçû äàííûõ è îòîáðàæàåò çíà÷åíèÿ ïîëåé ýòîé çàïèñè â îêíå ïðîñìîòðà.


Ñîäåðæàíèå ðàçäåëà