Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
129-160.doc
Скачиваний:
5
Добавлен:
11.11.2019
Размер:
343 Кб
Скачать
☆

Отображение полей строки состояния

Строка состояния программы MyPaint содержит только стандартные поля, поддерживаемые библиотекой MFC. Чтобы добавить пользовательское поле, потребуется включить его идентификатор в массив, передаваемый в функцию CStatusBar::SetIndicators(). Кроме того, необходимо использовать редактор строк Microsoft Visual Studio, чтобы определить соответствующий строковый ресурс с таким же идентификатором, как и у поля. Если такая строка не определена, то программа завершится сообщением об ошибке.

Когда MFC отображает пользовательское поле, она делает его достаточно широким, чтобы поместился соответствующий строковый ресурс. Однако строка состояния автоматически не отображается, так как вначале поле заблокировано. Чтобы сделать поле доступным для строкового ресурса, необходимо сгенерировать для него обработчик сообщения UPDATE_COMMAND_UI (т. е. функцию с префиксом имени OnUpdate) и вызвать из него функцию CCmdUI::Enable(), опуская параметры или передавая значение TRUE. Тогда строковый ресурс станет видимым.

Если необходимо отображать различные строки, передавайте нужную строку функции CCmdUI::SetText(). Заметьте: при размещении новой строки ширина поля не будет корректироваться. Если новая строка, переданная в CCmdUI::SetText(), длиннее строкового ресурса, то она будет усечена.

Изменение интерактивной справки

Вспомните: текст интерактивной справки хранится в строковом ресурсе с таким же идентификатором, как у команды меню и соответствующей кнопки панели инструментов. Строковый ресурс может хранить вместе с интерактивной справкой текст всплывающей подсказки, который состоит из справки и символа перевода строки (\n), а за ним следует текст всплывающей подсказки.

Интерактивную справку или всплывающую подсказку команды меню можно модифицировать. Для этого откройте меню в редакторе меню, выполнив двойной щелчок на команде, и отредактируйте текст в поле Prompt. Чтобы изменить интерактивную справку или всплывающую подсказку для кнопки панели инструментов, откройте ее в редакторе панели инструментов, выберите кнопку (щелкнув на ней в области панели инструментов), выполните двойной щелчок в области редактирования и отредактируйте текст в поле Prompt.

Можно также отредактировать текст в редакторе строк. Если ID_MYCOMMAND — идентификатор кнопки панели инструментов или команды меню, то в редакторе строк нужно открыть ресурс String Table. Отредактируйте строку ID_MYCOMMAND или добавьте строку с этим идентификатором, если он еще не существует.

Кроме того, можно изменить стандартное сообщение о простое библиотеки MFC. Если команды меню не выделены, и кнопки панели инструментов не нажаты, MFC отображает информацию о простое в первом поле строки состояния. Стандартное сообщение о простое — это строка Ready. Если хотите задать другое сообщение о простое, то отредактируйте строку с идентификатором AFX_IDS_IDLEMESSAGE в редакторе строк (рис. 5.16).

Рис. 5.16. Таблица строк с ресурсом AFX_IDS_IDLEMESSAGE

Если строка состояния новой программы сгенерирована мастером AppWizard (при выборе опции Initial Status Bar в окне User Interface Features), то код, необходимый для отображения строки состояния, описанный в этом параграфе, будет включен в исходные файлы. Для внесения изменений в поля или изменения их расположения отредактируйте массив IndicatorsIDs с идентификаторами полей, размещенный в начале файла MainFrm.cpp.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]