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

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

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

РСсурсы прилоТСния

Рассмотрим рСсурсы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ MFC AppWizard создал для нашСго прилоТСния. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ страницу RecourceView Π² ΠΎΠΊΠ½Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Project Workspace. Π’ Π½Π΅ΠΌ отобраТаСтся ΠΏΠΎΠ»Π½Ρ‹ΠΉ список всСх рСсурсов прилоТСния (рис. 1.3).

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


Π‘Ρ€Π°Π²Π½ΠΈΡ‚Π΅ эти рСсурсы с рСсурсами прилоТСния с ΠΎΠ΄Π½ΠΎΠΎΠΊΠΎΠ½Π½Ρ‹ΠΌ интСрфСйсом (Ρ‚ΠΎΠΌ 24 сСрии β€œΠ‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° систСмного программиста”). Π’Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π² состав прилоТСния с ΠΌΠ½ΠΎΠ³ΠΎΠΎΠΊΠΎΠ½Π½Ρ‹ΠΌ интСрфСйсом Π²Ρ…ΠΎΠ΄ΠΈΡ‚ большС рСсурсов. Π’Π°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для ΠΌΠ½ΠΎΠ³ΠΎΠΎΠΊΠΎΠ½Π½ΠΎΠ³ΠΎ прилоТСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Π΄Π²Π° мСню, Π΄Π²Π΅ ΠΏΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, большС Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ тСкстовых строк.

ΠΠ°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ рСсурсы

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ всС рСсурсы, прСдставлСнныС Π½Π° страницС RecourceView Π² ΠΎΠΊΠ½Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Project Workspace, английскиС. К соТалСнию, MFC AppWizard ΠΈΠ· доступных Π½Π°ΠΌ вСрсий Microsoft Visual C++ Π½Π΅ позволяСт Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ для создаваСмого прилоТСния русскиС рСсурсы (язык для рСсурсов выбираСтся Π² ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ MFC AppWizard – Step 1, Π²ΠΎ врСмя опрСдСлСния свойств прилоТСния). ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ для прилоТСния Multi ΠΈ всСх Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, созданных с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ MFC AppWizard, ΠΌΡ‹ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ английский язык.

Если Π²Ρ‹ Π² Control Panel с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ прилоТСния Regional Settings Π²Ρ‹Π±Ρ€Π°Π»ΠΈ русский язык, Ρ‚ΠΎ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях ClassWizard ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ. НапримСр, Ссли Π²Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ ΠΊ английской Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ Π½ΠΎΠ²Ρ‹Π΅ ΠΎΡ€Π³Π°Π½Ρ‹ управлСния, Ρ‚ΠΎ ClassWizard Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ автоматичСски ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ ΠΊ Π½ΠΈΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. Π’ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ слоТности ΠΏΡ€ΠΈ использовании русского тСкста Π² строковых рСсурсах, ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Ρ… ΠΊΠ°ΠΊ английскиС. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ этих ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ язык, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для рСсурсов. Для этого достаточно Π² ΠΎΠΊΠ½Π΅ Project Workspace Ρ‰Π΅Π»ΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρƒ рСсурса ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΈΠ· ΠΎΡ‚ΠΊΡ€Ρ‹Π²ΡˆΠ΅Π³ΠΎΡΡ контСкстного мСню строку Properties. На экранС появится диалоговая панСль со свойствами Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ рСсурса. Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π² Π½Π΅ΠΉ язык рСсурса, Π²Ρ‹Π±Ρ€Π°Π² ΠΈΠ· списка Language строку Russian.

Шаблон мСню

Для ΠΌΠ½ΠΎΠ³ΠΎΠΎΠΊΠΎΠ½Π½ΠΎΠ³ΠΎ прилоТСния Π² рСсурсах ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Π΄Π²Π° мСню с ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈ IDR_MAINFRAME ΠΈ IDR_MULTITYPE. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΎΠ΄Π½ΠΎ ΠΈΠ· этих мСню, Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΈΠ»ΠΈ Π½Π΅Ρ‚.

МСню с ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ IDR_MAINFRAME ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, Ссли Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π½Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ Π½ΠΈ ΠΎΠ΄ΠΈΠ½ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚. Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ мСню совпадаСт с ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ мСню прилоТСния с ΠΎΠ΄Π½ΠΎΠΎΠΊΠΎΠ½Π½Ρ‹ΠΌ интСрфСйсом, ΠΎΠ΄Π½Π°ΠΊΠΎ строки этих мСню Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ:

//////////////////////////////////////////////////////////////// МСню IDR_MAINFRAME

IDR_MAINFRAME MENU PRELOAD DISCARDABLE

BEGIN

 POPUP "&File"

 BEGIN

  MENUITEM "&New\tCtrl+N",    ID_FILE_NEW

  MENUITEM "&Open...\tCtrl+O",ID_FILE_OPEN

  MENUITEM SEPARATOR

  MENUITEM "P&rint Setup...", ID_FILE_PRINT_SETUP

  MENUITEM SEPARATOR

  MENUITEM "Recent File",     ID_FILE_MRU_FILE1, GRAYED

  MENUITEM SEPARATOR

 MENUITEM "E&xit",            ID_APP_EXIT

 END

 POPUP "&View"

 BEGIN

  MENUITEM "&Toolbar",        ID_VIEW_TOOLBAR

  MENUITEM "&Status Bar",     ID_VIEW_STATUS_BAR

 END

 POPUP "&Help"

 BEGIN

  MENUITEM "&About Multi...", ID_APP_ABOUT

 END

END

МСню, ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ IDR_MULTITYPE, отобраТаСтся, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ создаСт Π½ΠΎΠ²Ρ‹ΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚, ΡƒΠΆΠ΅ записанный Π² Ρ„Π°ΠΉΠ»Π΅ Π½Π° дискС.

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, Π² этом мСню ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ мСню Window, строки ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ слуТат для управлСния MDI ΠΎΠΊΠ½Π°ΠΌΠΈ прилоТСния:

//////////////////////////////////////////////////////////////// МСню IDR_MAINFRAME

IDR_MAINFRAME MENU PRELOAD DISCARDABLE

BEGIN

 POPUP "&File"

 BEGIN

  MENUITEM "&New\tCtrl+N",     ID_FILE_NEW

  MENUITEM "&Open...\tCtrl+O", ID_FILE_OPEN

  MENUITEM SEPARATOR

  MENUITEM "P&rint Setup...",  ID_FILE_PRINT_SETUP

  MENUITEM SEPARATOR

  MENUITEM "Recent File",      ID_FILE_MRU_FILE1, GRAYED

  MENUITEM SEPARATOR

  MENUITEM "E&xit",            ID_APP_EXIT

 END

 POPUP "&View"

 BEGIN

  MENUITEM "&Toolbar",         ID_VIEW_TOOLBAR

  MENUITEM "&Status Bar",      ID_VIEW_STATUS_BAR

 END

 POPUP "&Help"

 BEGIN

  MENUITEM "&About Multi...",  ID_APP_ABOUT

 END

END

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ строк мСню прилоТСния Multi ΠΈΠΌΠ΅Π΅Ρ‚ стандартныС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹. Π‘ΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΈΠΌ стандартныС ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹Π΅ сообщСния ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ классами Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ MFC. Π’Π°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, стандартноС ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ΅ сообщСниС с ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ ID_FILENEW ΠΎΡ‚ строки New мСню File, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ обрабатываСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ OnFileNew класса CWinApp. ΠœΡ‹ ΡƒΠΆΠ΅ рассказывали ΠΎ стандартных ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹Ρ… сообщСниях Π² 24 Ρ‚ΠΎΠΌΠ΅ ΠΈΠ· сСрии β€œΠ‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° систСмного программиста”. Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ описаниС стандартных ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹Ρ… сообщСний Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Microsoft Visual C++.

Π’ этой ΠΊΠ½ΠΈΠ³Π΅ ΠΌΡ‹ посвятили мСню ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Π³Π»Π°Π²Ρƒ, которая называСтся β€œΠœΠ΅Π½ΡŽ, ΠΏΠ°Π½Π΅Π»ΠΈ управлСния ΠΈ ΠΏΠ°Π½Π΅Π»ΠΈ состояния”. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± использовании мСню Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π² 13 Ρ‚ΠΎΠΌΠ΅ сСрии β€œΠ‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° систСмного программиста”.

ΠŸΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°

Π’ Ρ„Π°ΠΉΠ»Π΅ рСсурсов прилоТСния Multi ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Π΄Π²Π΅ ΠΏΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ IDR_MULTITYPE ΠΈ IDR_MAINFRAME. КаТдая ΠΈΠ· этих ΠΏΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌ содСрТит ΠΏΠΎ Π΄Π²Π° изобраТСния Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 32Γ—32 ΠΈ 16Γ—16 пиксСлов. Π’Π½Π΅ΡˆΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΠΏΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌ соотвСтствуСт ΠΏΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ с ΠΎΠ΄Π½ΠΎΠΎΠΊΠΎΠ½Π½Ρ‹ΠΌ интСрфСйсом. Для ΠΎΠ΄Π½ΠΎΠΎΠΊΠΎΠ½Π½ΠΎΠ³ΠΎ прилоТСния ΠΏΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚, Π½Π°Π·Ρ‹Π²Π°Π»Π°ΡΡŒ IDR_SINGLETYPE, Π° Π½Π΅ IDR_MULTITYPE. Вакая Ρ€Π°Π·Π½ΠΈΡ†Π° Π² названиях Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ·-Π·Π° Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ Π² названиях ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ:

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

// ΠŸΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

IDR_MAINFRAME ICON DISCARDABLE "res\\Multi.ico"

IDR_MULTITYPE ICON DISCARDABLE "res\\MultiDoc.ico"

ΠŸΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° IDR_MAINFRAME прСдставляСт ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΎ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ (рис. 1.4). Π­Ρ‚Π° ΠΆΠ΅ ΠΏΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° отобраТаСтся Π² Π»Π΅Π²ΠΎΠΌ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΠ³Π»Ρƒ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° прилоТСния.

Рис. 1.4. ΠŸΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° IDR_MAINFRAME


ΠŸΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° IDR_MULTITYPE ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для прСдставлСния Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (рис. 1.5). Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ прилоТСния с ΠΎΠ΄Π½ΠΎΠΎΠΊΠΎΠ½Π½Ρ‹ΠΌ интСрфСйсом, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ эту ΠΏΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с ΠΌΠ½ΠΎΠ³ΠΎΠΎΠΊΠΎΠ½Π½Ρ‹ΠΌ интСрфСйсом ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΏΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ IDR_MULTITYPE Π² Π»Π΅Π²ΠΎΠΌ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΠ³Π»Ρƒ ΠΎΠΊΠ½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°.

Рис. 1.5. ΠŸΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° IDR_MULTITYPE


ПанСль управлСния toolbar

НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π²Π° мСню, для Π½Π΅Π³ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Π° панСль управлСния IDR_MAINFRAME. Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ ΠΏΠ΅Ρ€Π²Ρ‹Ρ… Ρ‚Ρ€Π΅Ρ… ΠΈ послСдних Π΄Π²ΡƒΡ… ΠΊΠ½ΠΎΠΏΠΎΠΊ этой ΠΏΠ°Π½Π΅Π»ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌ строк ΠΈ мСню IDR_MAINFRAME ΠΈ мСню IDR_MULTITYPE. А Π²ΠΎΡ‚ Π²Ρ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Ρ€ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° ΠΈΠΌΠ΅ΡŽΡ‚ соотвСтствиС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² мСню IDR_MULTITYPE. Пока Π½ΠΈ ΠΎΠ΄ΠΈΠ½ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Π½Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ ΠΈ отобраТаСтся мСню IDR_MAINFRAME, эти ΠΊΠ½ΠΎΠΏΠΊΠΈ нСдоступны ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ сСрым Ρ†Π²Π΅Ρ‚ΠΎΠΌ:

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

// ПанСль управлСния Toolbar

IDR_MAINFRAME TOOLBAR DISCARDABLE  16, 15

BEGIN

 BUTTON ID_FILE_NEW

 BUTTON ID_FILE_OPEN

 BUTTON ID_FILE_SAVE

 SEPARATOR

 BUTTON ID_EDIT_CUT

 BUTTON ID_EDIT_COPY

 BUTTON ID_EDIT_PASTE

 SEPARATOR

 BUTTON ID_FILE_PRINT

 BUTTON ID_APP_ABOUT

END

ΠžΠ±Ρ€Π°Π· ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΏΠ°Π½Π΅Π»ΠΈ управлСния располоТСн Π² Ρ„Π°ΠΉΠ»Π΅ Toolbar.bmp, записанном Π² ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ res ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (рис. 1.6):

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

// Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Bitmap, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π΅Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ прилоТСния

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

ПанСлям управлСния ΠΌΡ‹ ΡƒΠ΄Π΅Π»ΠΈΠ»ΠΈ Π² этой ΠΊΠ½ΠΈΠ³Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Π³Π»Π°Π²Ρƒ, которая ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ β€œΠœΠ΅Π½ΡŽ, ΠΏΠ°Π½Π΅Π»ΠΈ управлСния ΠΈ ΠΏΠ°Π½Π΅Π»ΠΈ состояния”. Π’ Π½Π΅ΠΉ описаны ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ устройства ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠ°Π½Π΅Π»Π΅ΠΉ управлСния, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ простыС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ создания Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Π½Π΅Π»Π΅ΠΉ управлСния, Π² Ρ‚ΠΎΠΌ числС ΠΏΠ°Π½Π΅Π»Π΅ΠΉ управлСния Π½Π° основС шаблонов Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Ρ… ΠΏΠ°Π½Π΅Π»Π΅ΠΉ.

Рис. 1.6. ПанСль управлСния


Π’Π°Π±Π»ΠΈΡ†Π° аксСлСраторов

Π’Π°Π±Π»ΠΈΡ†Π° аксСлСраторов IDR_MAINFRAME прилоТСния ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ соотвСтствуСт Ρ‚Π°Π±Π»ΠΈΡ†Π΅ аксСлСраторов, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΠΎΠΉ MFC AppWizard ΠΊ рСсурсам прилоТСния с ΠΎΠ΄Π½ΠΎΠΎΠΊΠΎΠ½Π½Ρ‹ΠΌ интСрфСйсом:

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

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

IDR_MAINFRAME ACCELERATORS PRELOAD MOVEABLE PURE

BEGIN

 "N",       ID_FILE_NEW,   VIRTKEY,CONTROL

 "O",       ID_FILE_OPEN,  VIRTKEY,CONTROL

 "S",       ID_FILE_SAVE,  VIRTKEY,CONTROL

 "P",       ID_FILE_PRINT, VIRTKEY,CONTROL

 "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