|
http://tikitak.narod.ru ---- Главная страница сайта
Шаг 8 - Подмена меню
Создание проекта
Нет ничего более постоянного, чем временное. Step1 живет и здраствует.
Нам в проекте нужно создать второе меню, так-же как и первое, но с идентификатором IDR_MENU1. И создать пункты Файл и Закрыть. У пункта меню Закрыть идентификатор должен совпадать с предыдущим меню. Это необходимо, чтобы не создавать несколько макросов обработки. Смотрите ниже и все поймете.
Создаем код
Выберем место замены. Это может быть кнопка, сам пункт меню или любое другое событие. Любое другое и выберем. Например, двойной щелчок в окне!
void CMainWnd::OnLButtonDblClk( UINT, CPoint)
{
m_wndMenu.DestroyMenu(); // Уничтожаем старое
m_wndMenu.LoadMenu(IDR_MENU1); // Читаем новое
SetMenu(&m_wndMenu); // Устанавливаем меню
}
Описание
DestroyMenu() уничтожает меню. Как видите эта функция является членом класса CMenu. Мы уничтожаем не просто меню программы, а меню класса меню связанного с окном программы. Уничтожается меню связанное функцией SetMenu.
Дальше Вам известно все. Читаем и устанавливаем.
На эту тему можно фантазировать. Например, меню на английском, немецком, французком на выбор? Или меню, которое постоянно изменяется при разных условиях. Или конкретное меню под конкретное рабочее место, под паролем на основании меню, в котором есть всё? Или .... буду раз если подскажите идеи, где это можно применить.
Шпаргалка
- Удали текущее.
m_wndMenu.DestroyMenu();
- Прочитай новое.
m_wndMenu.LoadMenu(IDR_MENU1);
- Установи.
SetMenu(&m_wndMenu);
Предыдущий Шаг | Следующий Шаг | Оглавление By Artem.
Используются технологии uCoz
|