Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Фролов Александр. Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT - royallib.ru.doc
Скачиваний:
98
Добавлен:
11.03.2016
Размер:
905.62 Кб
Скачать

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

Многие современные приложения, в том числе все приложения имеющие оконный интерфейс и созданные с использованием средств MFC AppWizard, имеют панель управления. Эта панель располагается как правило ниже меню главного окна приложения и содержит ряд кнопок.

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

// Панель управления 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 каталога проекта.

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

// Изображение Bitmap, определяющее кнопки приложения

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

Пиктограмма

В файле ресурсов приложения Single определены две пиктограммы IDR_SINGLETYPE и IDR_MAINFRAME. Каждая из этих пиктограмм содержит по два изображения различного размера 32×32 и 16×16 пикселов.

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

// Пиктограммы

IDR_MAINFRAME ICON DISCARDABLE "res\\Single.ico"

IDR_SINGLETYPE ICON DISCARDABLE "res\\SingleDoc.ico"

Пиктограмма IDR_MAINFRAME представляет минимизированное приложение (рис. 5.11). Эта же пиктограмма отображается в левом верхнем углу главного окна приложения.

Рис. 5.11. Пиктограмма IDR_MAINFRAME

Точно такая же пиктограмма используется всеми приложениями, построенными на основе MFC AppWizard, вне зависимости от типа их интерфейса с пользователем.

Пиктограмма IDR_SINGLETYPE может быть использована для представления документа, с которым работает приложение (рис. 5.12). Приложение с однооконным интерфейсом практически не использует эту пиктограмму.

Рис. 5.12. Пиктограмма IDR_SINGLETYPE

Таблица текстовых строк

Одним из наиболее объемных ресурсов приложения является таблица текстовых строк. В ней определены название главного окна приложения, строки, отображаемые в панели состояния и т. д.

Ресурсы приложения содержат несколько блоков, описывающих таблицы текстовых строк. Рассмотрим их подробнее. Первый блок текстовых строк включает только одну текстовую строку, имеющую идентификатор IDR_MAINFRAME. В этой строке закодирована различная информация, относящаяся к типу документов приложения. Обычно для каждого типа документа приложения определена своя строка описания.

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

// Таблица текстовых строк

STRINGTABLE PRELOAD DISCARDABLE

BEGIN

 IDR_MAINFRAME "Single\n\nSingle\n\n\nSingle.Document\nSingle Document"

END

Строка описания типа документа (IDR_MAINFRAME) состоит из семи фрагментов, разделенных символами перевода строки \n. Эти фрагменты строки отвечают за различные характеристики документа.

Формирование этой строки выполняется MFC AppWizard на основании информации, которую вы указали на страница Document Template Strings диалоговой панели Advanced Options (рис. 5.6).

Для получения более полной информации вы можете изучить метод GetDocString, который позволяет определить отдельные фрагменты строки, описывающий документ. Описание метода GetDocString смотрите в справочной системе Visual C++.

Второй блок таблицы текстовых строк содержит две строки с идентификаторами AFX_IDS_APP_TITLE и AFX_IDS_IDLEMESSAGE. Строка, имеющая идентификатор AFX_IDS_IDLEMESSAGE, отображается в панели состояния, когда приложение находится в состоянии ожидания.

Когда пользователь создает объект главного класса приложения, он может указать имя приложения. Если это имя не указано, как в нашем приложении, тогда в качестве имени приложения используется строка, имеющая идентификатор AFX_IDS_APP_TITLE.

STRINGTABLE PRELOAD DISCARDABLE

BEGIN

 AFX_IDS_APP_TITLE "Single"

 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

И наконец, последний, самый большой блок текстовых строк содержит краткие описания каждой строки меню приложения. Идентификаторы этих строк соответствуют идентификаторам строк меню, которые они описывают.

Строки, описывающие меню, состоят из двух частей, разделенных символом перевода строки \n. Первая часть строки отображаются в панели состояния, когда пользователь выбирает строки меню. Вторая часть строки содержит краткую подсказку, которая отображается, если поместить указатель мыши на кнопки и подождать несколько секунд. Если вы не нуждаетесь в короткой подсказке для кнопок управляющей панели, то вторую часть строки можно не приводить.

STRINGTABLE DISCARDABLE

BEGIN

 ID_FILE_NEW "Create a new document\nNew"

 ID_FILE_OPEN "Open an existing document\nOpen"

 ID_FILE_CLOSE "Close the active document\nClose"

 ID_FILE_SAVE "Save the active document\nSave"

 ID_FILE_SAVE_AS "Save the active document with a new name\nSave As"

 ID_FILE_PAGE_SETUP "Change the printing options\nPage Setup"

 ID_FILE_PRINT_SETUP "Change the printer and printing options\nPrint Setup"

 ID_FILE_PRINT "Print the active document\nPrint"

 ID_FILE_PRINT_PREVIEW "Display full pages\nPrint Preview"

 ID_APP_ABOUT " Display program information, version number and copyright\nAbout"

 ID_APP_EXIT "Quit the application; prompts to save documents\nExit"

 ID_FILE_MRU_FILE1 "Open this document"

 ID_FILE_MRU_FILE2 "Open this document"

 ID_FILE_MRU_FILE3 "Open this document"

 ID_FILE_MRU_FILE4 "Open this document"

 ID_FILE_MRU_FILE5 "Open this document"

 ID_FILE_MRU_FILE6 "Open this document"

 ID_FILE_MRU_FILE7 "Open this document"

 ID_FILE_MRU_FILE8 "Open this document"

 ID_FILE_MRU_FILE9 "Open this document"

 ID_FILE_MRU_FILE10 "Open this document"

 ID_FILE_MRU_FILE11 "Open this document"

 ID_FILE_MRU_FILE12 "Open this document"

 ID_FILE_MRU_FILE13 "Open this document"

 ID_FILE_MRU_FILE14 "Open this document"

 ID_FILE_MRU_FILE15 "Open this document"

 ID_FILE_MRU_FILE16 "Open this document"

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

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

 ID_WINDOW_SPLIT "Split the active window into panes\nSplit"

 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\nSelect All"

 ID_EDIT_UNDO "Undo the last action\nUndo"

 ID_EDIT_REDO "Redo the previously undone action\nRedo"

 ID_VIEW_TOOLBAR "Show or hide the toolbar\nToggle ToolBar"

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

END