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++, так как он не только разрешает редактировать существующие кнопки, но также позволяет добавлять новые кнопки вместе с соответствующими идентификаторами и строковыми ресурсами.

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


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

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


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

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


Рис. 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


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