Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Microsoft Visual C++ ΠΈ MFC. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ для Windows 95 ΠΈ Windows NT. Π§Π°ΡΡ‚ΡŒ 2Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 4

Автор АлСксандр Π€Ρ€ΠΎΠ»ΠΎΠ²

 VK_F6,     ID_PREV_PANE,  VIRTKEY,SHIFT

END

ΠœΡ‹ расскаТСм Π²Π°ΠΌ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ аксСлСраторов Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ β€œΠ’Π°Π±Π»ΠΈΡ†Π° аксСлСраторов”. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π²Ρ‹ смоТСтС ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π² 13 Ρ‚ΠΎΠΌΠ΅ сСрии β€œΠ‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° систСмного программиста”.

Диалоговая панСль

Π’ рСсурсах прилоТСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° диалоговая панСль с ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ IDD_ABOUTBOX. Она содСрТит ΠΊΡ€Π°Ρ‚ΠΊΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΈ отобраТаСтся Π½Π° экранС, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΈΠ· мСню Help строку About Multi:

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

// ВСрсия

VS_VERSION_INFO     VERSIONINFO

 FILEVERSION    1,0,0,1

 PRODUCTVERSION 1,0,0,1

 ILEFLAGSMASK 0x3fL

#ifdef _DEBUG

  FILEFLAGS 0x1L

#else

  FILEFLAGS 0x0L

#endif

 FILEOS 0x4L

 FILETYPE 0x1L

 FILESUBTYPE 0x0L

BEGIN

 BLOCK "StringFileInfo"

 BEGIN

  BLOCK "040904B0"

   BEGIN

   VALUE "CompanyName", "Solaris\0"

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

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

   VALUE "InternalName", "MULTI\0"

   VALUE "LegalCopyright", "Copyright Β© 1996 Frolov G.V.\0"

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

   VALUE "ProductName", "MULTI Application\0"

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

  END

 END

 BLOCK "VarFileInfo"

 BEGIN

  VALUE "Translation", 0x409, 1200

 END

END

Π’Π°Π±Π»ΠΈΡ†Π° тСкстовых строк

РСсурсы прилоТСния содСрТат нСсколько Π±Π»ΠΎΠΊΠΎΠ², ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ тСкстовых строк. Π­Ρ‚ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ практичСски ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚ с Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ тСкстовых строк, Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… MFC AppWizard Π² рСсурсы прилоТСния с ΠΎΠ΄Π½ΠΎΠΎΠΊΠΎΠ½Π½Ρ‹ΠΌ интСрфСйсом.

Π‘Π»ΠΎΠΊΠΈ тСкстовых строк, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ Ρ‚ΠΈΠΏ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² прилоТСния, ΠΈ основныС характСристики Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° прилоТСния ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚ с ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ ΠΎΠ΄Π½ΠΎΠΎΠΊΠΎΠ½Π½ΠΎΠ³ΠΎ прилоТСния, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ строки с Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°:

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

// Π’Π°Π±Π»ΠΈΡ†Π° тСкстовых строк

STRINGTABLE PRELOAD DISCARDABLE

BEGIN

 IDR_MAINFRAME "Multi"

 IDR_MULTITYPE "\nMulti\nMulti\n\n\nMulti.Document\nMulti Document"

END

STRINGTABLE PRELOAD DISCARDABLE

BEGIN

 AFX_IDS_APP_TITLE   "Multi"

 AFX_IDS_IDLEMESSAGE "Ready"

END

Π‘Π»ΠΎΠΊ тСкстовых строк, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² ΠΏΠ°Π½Π΅Π»ΠΈ состояния ststus bar, ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ совпадаСт с Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌ Π±Π»ΠΎΠΊΠΎΠΌ Π² рСсурсах ΠΎΠ΄Π½ΠΎΠΎΠΊΠΎΠ½Π½ΠΎΠ³ΠΎ прилоТСния:

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

Π’ Π±Π»ΠΎΠΊΠ΅ тСкстовых строк, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΡ… элСмСнты мСню, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ряд тСкстовых строк, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ относятся ΠΊ мСню Window. Для ΠΎΠ΄Π½ΠΎΠΎΠΊΠΎΠ½Π½ΠΎΠ³ΠΎ прилоТСния эти строки Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ мСню Window Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρƒ ΠΌΠ½ΠΎΠ³ΠΎΠΎΠΊΠΎΠ½Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ:

STRINGTABLE DISCARDABLE

BEGIN

 ID_FILE_NEW         "Create a new document\nNew"

 ID_FILE_OPEN        "Open an existing document\nOpen"

 ...

 ID_PREV_PANE        "Switch back to the previous window pane\nPrevious Pane"

 ID_WINDOW_NEW       "Open another window for the active document\nNew Window"

 ID_WINDOW_ARRANGE   "Arrange icons at the bottom of the window\nArrange Icons"

 ID_WINDOW_CASCADE   "Arrange windows so they overlap\nCascade Windows"

 ID_WINDOW_TILE_HORZ "Arrange windows as non-overlapping tiles\nTile Windows"

 ID_WINDOW_TILE_VERT "Arrange windows as non-overlapping tiles\nTile Windows"

 ID_WINDOW_SPLIT     "Split the active window into panes\nSplit"

 ...

 ID_EDIT_CLEAR       "Erase the selection\nErase"

 ID_VIEW_TOOLBAR     "Show or hide the toolbar\nToggle ToolBar"

 ID_VIEW_STATUS_BAR  "Show or hide the status bar\nToggle StatusBar"

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"

 AFX_IDS_SCRESTORE     "Restore the window to normal size"

 AFX_IDS_SCTASKLIST    "Activate Task List"

 AFX_IDS_MDICHILD      "Activate this window"

 AFX_IDS_PREVIEW_CLOSE "Close print preview mode\nCancel Preview"

END

ΠšΠ»Π°ΡΡΡ‹ прилоТСния Multi

MFC AppWizard создаСт для прилоТСния Multi, ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΎΠΊΠΎΠ½Π½Ρ‹ΠΌ интСрфСйсом, ΡˆΠ΅ΡΡ‚ΡŒ основных классов, Ρ‡Ρ‚ΠΎ Π½Π° ΠΎΠ΄ΠΈΠ½ класс большС, Ρ‡Π΅ΠΌ для ΠΎΠ΄Π½ΠΎΠΎΠΊΠΎΠ½Π½ΠΎΠ³ΠΎ прилоТСния. ΠŸΡΡ‚ΡŒ классов ΠΈΠ· ΡˆΠ΅ΡΡ‚ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ основу любого ΠΌΠ½ΠΎΠ³ΠΎΠΎΠΊΠΎΠ½Π½ΠΎΠ³ΠΎ прилоТСния, созданного MFC AppWizard. ШСстой класс управляСт ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΉ панСлью About.

Бписок Π½Π°Π·Π²Π°Π½ΠΈΠΉ классов, Π° Ρ‚Π°ΠΊΠΆΠ΅ входящиС Π² Π½ΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ элСмСнты Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° страницС ClassView ΠΎΠΊΠ½Π° Project Workspace (рис. 1.7). Π’ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅ Globals прСдставлСны Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ прилоТСния. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Multi ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ theApp. Π­Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ класса прилоТСния.

Рис. 1.7. Окно Project Workspace, классы прилоТСния


Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΊΡ€Π°Ρ‚ΠΊΠΎ описано Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… классов прилоТСния Multi. Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ рассказ ΠΎΠ± этих классах ΠΈ ΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ… располоТСн Π½ΠΈΠΆΠ΅.

Класс прилоТСния Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ класс ОписаниС CMultiApp CWinApp Π“Π»Π°Π²Π½Ρ‹ΠΉ класс прилоТСния CMainFrame CMDIFrameWnd Класс Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° прилоТСния CChildFrame CMDIChildWnd Класс Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅Π³ΠΎ ΠΎΠΊΠ½Π° MDI CMultiDoc CDocument Класс Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° прилоТСния CMultiView CView Класс ΠΎΠΊΠ½Π° просмотра Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°

ΠšΡ€ΠΎΠΌΠ΅ пяти основных классов создаСтся Ρ‚Π°ΠΊΠΆΠ΅ класс CAboutDlg, наслСдованный ΠΎΡ‚ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса CDialog. Он ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡƒΡŽ панСль About. Если Π²ΠΎ врСмя опрСдСлСния характСристик прилоТСния Π²Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ€Π°Π±ΠΎΡ‚Ρƒ с сСтСвыми ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°ΠΌΠΈ ΠΈΠ»ΠΈ использованиС Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ OLE, список классов прилоТСния ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡˆΠΈΡ€Π΅.

Π“Π»Π°Π²Π½Ρ‹ΠΉ класс прилоТСния

Π“Π»Π°Π²Π½Ρ‹ΠΉ класс прилоТСния CMultiApp управляСт Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ всСго прилоТСния. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ этого класса Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ прилоТСния, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Ρ†ΠΈΠΊΠ»Π° сообщСний ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ прилоТСния. Π§Π΅Ρ€Π΅Π· ΠΎΠΊΠ½ΠΎ Project Workspace ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ названия ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² класса ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΈΡ… Π² тСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ (рис. 1.8).

Рис. 1.8. Окно Project Workspace, класс CMultiApp


Класс CMultiApp ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Π² Ρ„Π°ΠΉΠ»Π΅ Multi.h ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

//////////////////////////////////////////////////////////////// Класс CMultiApp

class CMultiApp : public CWinApp {

public:

 CMultiApp();


// Overrides

 //{{AFX_VIRTUAL(CMultiApp)

public:

 virtual BOOL InitInstance();

 //}}AFX_VIRTUAL


// Implementation

 //{{AFX_MSG(CMultiApp)

 afx_msg void OnAppAbout();

 //}}AFX_MSG


 // Класс CMultiApp ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ сообщСния

 DECLARE_MESSAGE_MAP()

};

Π’ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса прилоТСния theApp. Π­Ρ‚ΠΎΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ Π²Π½Π΅ зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ интСрфСйс ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ – ΠΎΠ΄Π½ΠΎΠΎΠΊΠΎΠ½Π½Ρ‹ΠΉ, ΠΌΠ½ΠΎΠ³ΠΎΠΎΠΊΠΎΠ½Π½Ρ‹ΠΉ ΠΈΠ»ΠΈ основанный Π½Π° Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ:

CMultiApp theApp;

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ класса CMultiApp

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ класса, созданный MFC AppWizard, Π½Π΅ выполняСт Π½ΠΈΠΊΠ°ΠΊΠΈΡ… дСйствий. Π’ Π½Π΅ΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° CMultiApp:

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

// ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ класса CMultiApp

CMultiApp::CMultiApp() {

 // TODO:

}

ΠœΠ΅Ρ‚ΠΎΠ΄ InitInstance класса CMultiApp

ΠžΡΠ½ΠΎΠ²Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ прилоТСния выполняСт ΠΌΠ΅Ρ‚ΠΎΠ΄ InitInstance Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ класса прилоТСния, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Π² Ρ„Π°ΠΉΠ»Π΅ Multi.cpp. Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, ΠΎΠ½ отличаСтся ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° InitInstance, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΎΠ΄Π½ΠΎΠΎΠΊΠΎΠ½Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ:

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

// ΠœΠ΅Ρ‚ΠΎΠ΄ InitInstance

BOOL CMultiApp::InitInstance() {


#ifdef _AFXDLL

 Enable3dControls();  

#else

 Enable3dControlsStatic();

#endif


 // Π—Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ