Визуальное программирование и MFC

       

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


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

Шаблон меню. В ресурсах приложения определен только один шаблон меню, имеющий идентификатор IDR_MAINFRAME.

Когда пользователь выбирает пункт меню, операционная система передает командное сообщение главному окну приложения. Большая часть строк меню IDR_MAINFRAME имеет стандартные идентификаторы, описанные в библиотеке MFC. Некоторые из команд, соответствующих этим идентификаторам, полностью обрабатываются MFC.

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

Идентификаторы кнопок панели управления соответствуют идентификаторам некоторых строк меню приложения. Поэтому эти строки дублируют соответствующие строки меню.

Образ кнопок панели управления расположен в файле toolbar.bmp, записанном в подкаталоге res каталога проекта. Файл же описания ресурсов приложения single.rc включает себя соответствующий ресурс.

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

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

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

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

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

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

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

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

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





Диалоговая панель.
В ресурсах приложения определена только одна диалоговая панель с идентификатором IDD_ABOUTBOX. Она содержит краткую информацию о приложении и отображается на экране, когда пользователь выбирает из меню Help строку About:



Таблица акселераторов.
Для того, чтобы ускорить доступ к строкам меню приложения, MFC AppWizard добавляет в файл ресурсов таблицу акселераторов.Когда пользователь нажимает комбинацию клавиш, представленную в таблице акселераторов, приложению поступает командное сообщение с соответствующим идентификатором.



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


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