Microsoft Visual C++ и MFC. Программирование для Win95 и WinNT

         

Ресурсы приложения MultiBar


Создайте новый файл ресурсов и включите его в проект под именем MultiBar.rc. Теперь надо создать три панели управления toolbar и включить их в файл ресурсов. Изображения кнопок панелей управления вы можете нарисовать самостоятельно или скопировать их из файла ресурсов Common.res, поставляемого вместе с Microsoft Visual C++. Более подробная информация о файле Common.res представлена в разделе “Ресурсы Microsoft”.

При создании панелей управления руководствуйтесь информацией из файла ресурсов приложения MultiBar (листинг 3.3) и изображениями кнопок панелей управления (рис. 3.3, 3.4, 3.5).

Первая панель управления должна иметь идентификатор IDR_PLAYER и содержать девять кнопок с идентификаторами ID_LEFT, ID_PLAY, ID_RIGHT, ID_STOP, ID_PAUSE, ID_EJECT, ID_TYPE, ID_CD_DRV и ID_WAVE. Между кнопками ID_RIGHT и ID_STOP, ID_PAUSE и ID_EJECT, ID_EJECT и ID_TYPE вставьте разделители. Для каждой из кнопок вы также можете ввести их текстовые описания.

Вторая панель управления должна иметь идентификатор IDR_STYLE и содержать двенадцать кнопок с идентификаторами ID_UNDERLINE, ID_2_UNDERLINE, ID_SUPERSCRIPT, ID_SUBSCRIPT, ID_TEXT_LEFT, ID_ID_TEXT_CENTER, ID_TEXT_RIGHT, ID_TEXT_JUSTIFY, ID_MARK_1, ID_MARK_2, ID_MARK_3 и ID_MARK_4. Для первых шести кнопок введите их текстовые описания.

Третья панель управления должна иметь идентификатор IDR_EXTENDED. Определите в ней четыре кнопки с идентификаторами ID_FOTO, ID_PRINTER, ID_ADD и ID_DISK. Между кнопками ID_PRINTER и  ID_ADD, а также ID_ADD и ID_DISK вставьте разделители. Введите текстовые описания кнопок.

В файл ресурсов, кроме панелей управления toolbar, включите меню IDR_MENU с тремя строками Style, Extended и Player, которые имеют идентификаторы ID_Style, ID_Extended и ID_Player. Обратите внимание, что идентификаторы строк меню соответствуют идентификаторам панелей управления.

Файл ресурсов приложения MultiBar мы привели в листинге 3.8. В нем определены ресурсы панелей управления toolbar с идентификаторами IDR_PLAYER, IDR_STYLE и IDR_EXTENDED, ресурсы изображений этих панелей управления с соответствующими идентификаторами, меню приложения, а также несколько строковых ресурсов с описаниями кнопок панелей управления. Идентификаторы строковых ресурсов соответствуют идентификаторам кнопок панелей управления, которые они описывают.


Листинг 3.8. Файл MultiBar.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

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

//

// Russian resources

#if !defined(AFX_RESOURCE_DLL) defined(AFX_TARG_RUS)

#ifdef _WIN32

LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT

#pragma code_page(1251)

#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

    "\r\n"

    "\0"

END

#endif    // APSTUDIO_INVOKED

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

//

// Toolbar

//

IDR_PLAYER TOOLBAR DISCARDABLE  16, 15

BEGIN

    BUTTON      ID_LEFT

    BUTTON      ID_PLAY

    BUTTON      ID_RIGHT

    SEPARATOR

    BUTTON      ID_STOP

    BUTTON      ID_PAUSE

    SEPARATOR

    BUTTON      ID_EJECT

    SEPARATOR

    BUTTON      ID_TYPE

    BUTTON      ID_CD_DRV

    BUTTON      ID_WAVE

END

IDR_STYLE TOOLBAR DISCARDABLE  16, 15

BEGIN

    BUTTON      ID_UNDERLINE

    BUTTON      ID_2_UNDERLINE

    BUTTON      ID_SUPERSCRIPT

    BUTTON      ID_SUBSCRIPT

    BUTTON      ID_TEXT_LEFT

    BUTTON      ID_ID_TEXT_CENTER

    BUTTON      ID_TEXT_RIGHT

    BUTTON      ID_TEXT_JUSTIFY

    BUTTON      ID_MARK_1

    BUTTON      ID_MARK_2

    BUTTON      ID_MARK_3

    BUTTON      ID_MARK_4

END

IDR_EXTENDED TOOLBAR DISCARDABLE  16, 15



BEGIN

    BUTTON      ID_FOTO

    BUTTON      ID_PRINTER

    SEPARATOR

    BUTTON      ID_ADD

    SEPARATOR

    BUTTON      ID_DISK

END

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

//

// Bitmap

//

IDR_PLAYER              BITMAP  DISCARDABLE     "player.bmp"

IDR_STYLE               BITMAP  DISCARDABLE     "style.bmp"

IDR_EXTENDED            BITMAP  DISCARDABLE     "extended.bmp"

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

//

// Menu

//

IDR_MENU MENU DISCARDABLE

BEGIN

    POPUP "View"

    BEGIN

        MENUITEM "Style",                       ID_Style

        MENUITEM "Extended",                    ID_Extended

        MENUITEM "Player",                      ID_Player

    END

END

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

//

// String Table

//

STRINGTABLE DISCARDABLE

BEGIN

    ID_LEFT              "Rewind to begin\nRewind to begin"

    ID_RIGHT             "Rewind to end\nRewind to end"

    ID_PLAY              "Play\nPlay"

    ID_STOP              "Stop\nStop"

    ID_PAUSE             "Pause\nPause"

    ID_EJECT             "Eject\nEject"

    ID_TYPE              "Type drive\nType"

    ID_CD_DRV            "CD drive\nCD"

    ID_BUTTON40010       "Wave/nWave File"

    ID_WAVE              "Wave file\nWAWE"

    ID_UNDERLINE         "Underline\nUnderline"

    ID_2_UNDERLINE       "Double underline\nDouble underline"

    ID_SUPERSCRIPT       "Superscript\nSuperscript"

    ID_SUBSCRIPT         "Subscript\nSubscript"

END

STRINGTABLE DISCARDABLE

BEGIN

    ID_ADD               "Add from edit-box item to combo-

                          box\nAdd item to list"

END

STRINGTABLE DISCARDABLE

BEGIN



    ID_TEXT_LEFT         "Left text\nLeft"

    ID_ID_TEXT_CENTER    "Center text\nCenter"

    ID_TEXT_RIGHT        "Right text\nRight"

    ID_TEXT_JUSTIFY      "Justify text\nJustify"

    ID_FOTO              "Foto\nFoto"

    ID_PRINTER           "Printer\nPrinter"

    ID_DISK              "Disk\nDisk"

END

STRINGTABLE DISCARDABLE

BEGIN

    IDW_EDIT             "Edit\nEdit"

    IDW_COMBO            "Combo box\nCombo box"

END

#endif    // Russian resources

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

#ifndef APSTUDIO_INVOKED

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

// Generated from the TEXTINCLUDE 3 resource.

//

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

#endif    // not APSTUDIO_INVOKED

Изображения кнопок панелей управления располагаются в отдельных файлах player.bmp (рис. 3.14), style.bmp  (рис. 3.15) и extended.bmp (рис. 3.13) в главном каталоге проекта. Файлы изображений панелей управления содержат только изображения кнопок. В них не представлены разделители и дополнительные органы управления.

В принципе, изображения панели управления можно редактировать в любом графическом редакторе, который работает с 16-цветными изображениями в формате BMP. Примером такого приложения является графический редактор Microsoft Paint, поставляемый вместе с операционными системами Windows 95 и Windows NT версии 4.0. Однако, лучше использовать редактор ресурсов среды Microsoft Visual C++, так как он не только разрешает редактировать существующие кнопки, но также позволяет добавлять новые кнопки вместе с соответствующими идентификаторами и строковыми ресурсами.



Рис. 3.13. Изображение кнопок панели управления Extended



Рис. 3.14. Изображение кнопок панели управления Player



Рис. 3.15. Изображение кнопок панели управления Style

Идентификаторы всех ресурсов приложения MultiBar и идентификаторы дополнительных органов управления панели Extended определены в файле resource.h. Этот файл автоматически создается редактором ресурсов Microsoft Visual C++.



Мы привели исходный текст файла resource.h в листинге 3.9.

Листинг 3.9. Файл resource.h

//{{NO_DEPENDENCIES}}

// Microsoft Developer Studio generated include file.

// Used by MultiBar.rc

//

#define IDW_EDIT                        101

#define IDW_COMBO                       102

#define IDR_PLAYER                      103

#define IDR_STYLE                       105

#define IDR_EXTENDED                    107

#define IDR_MENU                        109

#define ID_LEFT                         40001

#define ID_RIGHT                        40002

#define ID_PLAY                         40003

#define ID_STOP                         40004

#define ID_PAUSE                        40005

#define ID_EJECT                        40007

#define ID_TYPE                         40008

#define ID_CD_DRV                       40009

#define ID_WAVE                         40011

#define ID_UNDERLINE                    40012

#define ID_2_UNDERLINE                  40013

#define ID_SUPERSCRIPT                  40014

#define ID_SUBSCRIPT                    40015

#define ID_TEXT_LEFT                    40017

#define ID_ID_TEXT_CENTER               40018

#define ID_TEXT_RIGHT                   40019

#define ID_TEXT_JUSTIFY                 40020

#define ID_MARK_1                       40021

#define ID_MARK_2                       40022

#define ID_MARK_3                       40023

#define ID_MARK_4                       40024

#define ID_FOTO                         40025

#define ID_PRINTER                      40026

#define ID_DISK                         40027

#define ID_Style                        40029

#define ID_Extended                     40030

#define ID_Buttons                      40031

#define ID_Player                       40031

#define ID_ADD                          40032

// Next default values for new objects

//

#ifdef APSTUDIO_INVOKED

#ifndef APSTUDIO_READONLY_SYMBOLS

#define _APS_NEXT_RESOURCE_VALUE        110

#define _APS_NEXT_COMMAND_VALUE         40033

#define _APS_NEXT_CONTROL_VALUE         1000

#define _APS_NEXT_SYMED_VALUE           103

#endif

#endif


Содержание раздела