пользователей: 30398
предметов: 12406
вопросов: 234839
Конспект-online
РЕГИСТРАЦИЯ ЭКСКУРСИЯ

Панель инструментов и строка состояния. Добавление и удаление пиктограмм. Обработка сообщений от кнопок панели инструментов.

 

 

Панель инструментов и строка состояния

Создание хорошего пользовательского интерфейса — это едва ли не половина успеха в разработке приложения для Windows. К счастью, Visual C++ и его мастера предоставляют разработчику уникальные возможности для создания приложений, поддерживающих все привычные элементы пользовательского интерфейса, включая меню, диалоговые окна, панели инструментов и строку состояния. Тема меню и диалоговых окон уже рассматривалась. Рассмотрим вопросы создания и настройки панелей инструментов и строк состояния приложений.

Создание панелей инструментов

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

Если с помощью AppWizard создать стандартное приложение, имеющее панель инструментов, то последняя будет содержать пиктограммы для наиболее распространенных команд меню File и Edit, а также пиктограмму для отображения окна About. Но как быть, если ваше приложение не поддерживает эти команды? В данном случае потребуется так модифицировать создаваемую по умолчанию панель инструментов, чтобы она соответствовала командам именно вашего приложения.

Удаление пиктограмм с панели инструментов

Создайте приложение с многооконным интерфейсом, включающее панель инструментов. Для этого выберите команду File-New, в открывшемся диалоговом окне выберите вкладку Projects, присвойте приложению имя Tool и примите значения по умолчанию в каждом из диалоговых окон, которые AppWizard будет выводить на экран. Для ускорения процесса можно на первом же шаге щелкнуть на кнопке Finish. Мастер AppWizard по умолчанию формирует стационарную панель инструментов. Завершите создание приложения и запустите его. На экране вы увидите панель инструментов.

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

В качестве первого шага в процедуре настройки панелей инструментов выполним удаление пиктограмм, которые в приложении не потребуются. Начните с того, что для отображения ресурсов приложения щелкните на корешке вкладки ResourceView. Далее щелкните на значке + рядом с элементом Toolbar, а затем сделайте двойной щелчок на ресурсе IDR_MAINFRAME. Откроется окно редактирования панелей инструментов.

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

Добавление пиктограмм на панель инструментов

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

Предположим, что на панели инструментов требуется создать пиктограмму, которая вызывает программу вычерчивания в окне приложения красного, круга. В качестве значка этой пиктограммы в окне редактора пиктограммы нарисуем красный круг (с помощью, инструментa,Ellipse). Выведите на экран окно свойств Properties, и присвойте пиктограмме соответствующий идентификатор команды, например ID_CIRCLE.

Далее следует определить для пиктограммы содержание контекстного окна указателя (ToolTip) и ввести ее описание. Контекстное окно указателя будет выводиться на экран в том случае, когда пользователь поместит указатель мыши на данную пиктограмму и задержит его |на ней на одну-две секунды. Эта процедура напомнит пользователю, назначение данной пиктограммы. Для нашего примера подходящим значением для указателя будет слово Circle. Описание же пиктограммы выводится в строке состояния приложения. В нашем случае подходящим описанием будет фраза: Draws a red circle in the window. Введите обе эти текстовые строки в поле Prompt. Сначала вводится текст описания пиктограммы, затем — знак перехода на новую строку (\n) и текст в контекстном окне указателя для данной пиктограммы.

Формирование строки состояния

Строки состояния являются очень полезными объектами, которые располагаются в нижней части окон приложений. Функция строки состояния (как она определена MFC) — отображение описания команд и состояния различных клавиш клавиатуры, включая клавиши <Caps Lock> и <Scroll Lock>. Фактически строка состояния настолько стандартна с точки зрения программистов (это справедливо, по крайней мере, для приложений, создаваемых с помощью AppWizard), что для нее даже отсутствуют ресурсы, которые можно было бы редактировать, как в случае с панелью инструментов. Достаточно только потребовать от AppWizard включить строку состояния в приложение, и вся необходимая работа будет автоматически выполнена.

Четвертый этап создания приложения – выбор опций, определяющих внешний вид элементов пользовательского интерфейса. Диалоговое окно Step 4 содержит много переключателей-флажков, соответствующих предлагаемым опциям оформления. Среди них есть флажок  Initial status bar.

Строка состояния, так же, как и панели инструментов, должна отражать специфические особенности вашего приложения. Для подобных целей в класс CStatusBar включен набор методов, которые дают возможность настраивать внешний вид строки состояния и выполняемые ею функции. Ниже представлен перечень этих методов и их краткое назначение.

CommandTolndex()        Возвращает индекс индикатора, заданного его идентификатором

Create()       Создает строку состояния

GetIternID()          Возвращает идентификатор индикатора, заданного его индексом

GetItemRect()       Возвращает параметры прямоугольника элемента, заданного его индексом

GetPanelnfoO        Возвращает информацию об индикаторе

GetPaneStyle()      Возвращает стиль индикатора

GetPaneText()       Возвращает текст индикатора

GetStatusBarCtrl()           Возвращает ссылку на объект класса CStatusBarCtrl, представленный объектом CStatusBar

Setlndicators()       Задает идентификатор индикатора

SetPanelnfo()        Задает для индикатора идентификатор, ширину и стиль

SetPaneStyle()       Задает стиль индикатора

SetPaneText()        Задает текст индикатора

Если при настройке AppWizard задать включение в приложение строки состояния, будет создано окно приложения. Строка состояния разделена на несколько частей, называемых ячейками, которые отображают определенную информацию о состоянии приложения и системы. Эти ячейки включают индикаторы для клавиш <Caps Lock>, <Num Lock> и <Scroll Lock>, а также область сообщений, в которой отображаются данные о состоянии и описание команд. Индикаторы прибиваются к правому краю, а все оставшееся место отдается для информационной строки. Чтобы увидеть описание команды, следует поместить указатель мыши на пиктограмму панели инструментов.

Рамка окна запоминает информацию об индикаторах в массиве. Самый левый индикатор имеет индекс 0. Когда вы создаете status bar, вы используете массив идентификаторов строк, которые рамка окна назначает соответствующим индикаторам. Далее можно пользоваться или идентификатором строки, или индексом его в массиве. По умолчанию первый индикатор «эластичный», он занимает все место оставшееся от индикаторов, которые прибиты к правому краю.

Чтобы создать объект класса CStatusBar необходимо выполнить следующие шаги:

Сконструировать объект CStatusBar;

Вызвать метод Create, чтобы создать окно для панели и назначить его для объекта класса CStatusBar;

Вызвать метод SetIndicators, чтобы назначить идентификатор строки каждому индикатору.

Есть три пути для установки текста на панели status bar.

Вызвать метод SetWindowText, чтобы установить текст на панели 0 только.

Вызвать метод CCmdUI::SetText при выполнении ON_UPDATE_COMMAND_UI для панели состояния.

Вызвать метод SetPaneText, чтобы установить текст на любой другой панели.

Наиболее распространенный метод настройки строки состояния — это добавление в нее новых ячеек. Для добавления ячейки в строку состояния следует выполнить следующее.

1.Создать идентификатор команды для новой ячейки.

2.Подготовить текст, помещаемый в ячейку по умолчанию.

3.Добавить идентификатор команды ячейки в массив индикаторов строки состояния.

4.Создать для ячейки функцию обработки команды обновления.


18.01.2020; 20:35
хиты: 43
рейтинг:0
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2024. All Rights Reserved. помощь