Сегодня вы узнаете как:
Меню определены как ресурс Visual C++. Поэтому их можно проектировать через вкладку Resource View . Вначале при создании диалогового приложения дерево ресурсов не будет содержать папку меню, но это можно изменить.
Некоторые ресурсы вроде изображений и звуков не могут быть описаны в тексте, они должны быть сохранены в двоичном формате. Эти ресурсы хранятся в отдельных файлах, а имена и местоположение этих файлв включаются в файл ресурсов.
Хотя файл ресурсов и предназначен для хранения ресурсов приложения, нет необходимости хранить все ресурсы в одном файле. Меню могут создаваться динамически, а диалоговые окна могут быть созданы с использованием внешних шаблонов или оболочек.
Вверх
На данный момент ресурс меню создан и готов к настройке.Теперь надо добавить
пункты меню.
Мы создали меню с одним пунктом. Можно продолжить добавление пунктов меню,
повторяя шаги 3 и 4 для каждой подсвеченной области.
Можно добавить в меню разделительную линию. Для этого выберите подсвеченную
область в которой вы хотите поместить разделитель. В приведенном примере
в данный момент должно быть подсвечено первое место в меню. Щелкните
правой кнопкой и выберите из контекстного меню Insert Separator.
Можно так же впечатать "-", что должно привести к подобному же эффекту.
Чтобы завершить создание программы, добавьте пункт Exit в меню File
и еще одно меню под названием Help с единственным пунктом About,
следуя шагам описанным выше.
Вот как можно это сделать :
Меню уже создано однако никак не связано с самим приложением.
Вверх
Если откомпилировать и выполнить то меню появится в диалоговом окне.
Можно выбрать любой пункт меню, но одна проблема есть - при нажатии
на пункты меню ничего не происходит. К меню еще необходимо привязать
программы обработки.
Вверх
Теперь, когда меню уже является частью нашего приложения, было бы хорошо
иметь возможность сделать с его помощью что-нибудь полезное.
Для того, чтобы привязать к меню какие-либо функции выполните следующее:
В предыдущих версиях Visual C++ можно было вызвать существующий
обработчик событий для элементов меню, добавляя существующую функцию
к событию COMMAND меню. В Visual C++.Net этого сделать нельзя.
В результате чтобы повторно использовать функцию обработчик события,
нужно добавить отдельную функцию обработки события для меню и затем
из нее вызвать нужную функцию для обработки события.
Чтобы повторно использовать функцию OnBnClickedExit для элемента меню Exit
выполните следующее:
Листинг 7.2 Функция OnFileExit
Листинг 7.3 Функция OnHelpAbout
Для обработки пункта Exit меню File используется существующая функция,
которая закрывает приложение.
Если теперь скомпилировать и выполнить то мы увидим что пункты меню
работают. Выбрав в меню Help пункт About мы увидим диалоговое окно
приложения About. Если в меню File выбрать пункт Hello, увидим окно
сообщения Hello There. А если в меню File выбрать пункт Exit , приложение
завершит работу.
Назад |
Начало урока |
Вверх |
Вперед
Создание приложения
Создадим приложение, содержащее одну кнопку и меню:
Добавление и настройка меню
Теперь можно добавить в приложение меню. Для этого сначала добавьте
в проект ресурс меню. При добавлении ресурса Мастер автоматически
вызовет Menu Disigner который позволит настроить меню.
Menu Designer откроется в области редактирования Developer Studio.
Делается это так:
Привязка меню к диалоговому окну
Теперь имеется меню, которое можно использовать в приложении. Однако если
сейчас откомпилировать и запустить, то меню не появится. Нужно еще связать
меню с диалоговым окном, выполнив следующее:
Привязка функций к меню
Листинг 7.1 Функция OnFileHello
void CMenusDlg::OnFileHello()
{
void CMenusDlg::OnFileExit()
{
void CMenusDlg::OnHelpAbout()
{
CAboutDlg dlgAbout;
//отобразить окно About
dlgAbout.DoModal();
В пункт Hello меню File мы добавили новую функцию MessageBox,
выводящую простое сообщение.
В пункт About меню Help мы добавили другую функцию, в которой объявляется экземпляр диалогового окна About и вызывается его метод DoModal.
Содержание