Чтение онлайн

на главную - закладки

Жанры

Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT. Часть 2

Фролов Григорий Вячеславович

Шрифт:

//============================================================

// Конструктор класса CMultiMenuWindow

//============================================================

CMultiMenuWindow::CMultiMenuWindow {

 // Создаем окно приложения, соответствующее

 // данному объекту класса CMultiMenuWindow

Create(NULL, "Multi Menu Sample", WS_OVERLAPPEDWINDOW, rectDefault, NULL, MAKEINTRESOURCE(IDR_FULL_MENU));

 // Загружаем таблицу клавиш акселерации

 LoadAccelTable(MAKEINTRESOURCE(IDR_ACCELERATOR));

 // Инициализируем флаги

 bEnable = TRUE;

 bRadio = TRUE;

 nCheck = 0;

}

//============================================================

// Метод OnCreate класса CMultiMenuWindow

// Вызывается во время создания окна приложения

//============================================================

int CMultiMenuWindow::OnCreate(LPCREATESTRUCT lpCreateStruct) {

 // Вызываем метод OnCreate базового класса

 if (CFrameWnd::OnCreate(lpCreateStruct) == -1) return -1;

 // Создаем панель состояния

 if (!m_wndStatusBar.Create(this)) 
{

// Ошибка при создании панели состояния

TRACE0("Failed to create status bar\n");

return -1;

 }

 // Отображаем индикаторы панели состояния

 if (!m_wndStatusBar.SetIndicators(&indicator, 1)) {

// Ошибка при установке индикатора

TRACE0("Failed to set indicators\n");

return -1;

 }

 return 0;

}

//============================================================

// Метод OnDisable класса CMultiMenuWindow

// Изменяем состояние флагов bEnable и nCheck

//============================================================

void CMultiMenuWindow::OnDisable {

 // Меняем значение bEnable с TRUE на FALSE и наоборот

 bEnable = !bEnable;

 // Меняем значение bEnable с 1 на 0 и наоборот

 nCheck = (nCheck == 1) ? 0 : 1;

}

//============================================================

// Метод OnRestrictMenu класса CMultiMenuWindow

// Изменяем меню приложения с IDR_FULL_MENU на

// IDR_RESTRICT_MENU

//============================================================

void CMultiMenuWindow::OnRestrictMenu {

 CMenu menuOld; // текущее меню

 CMenu menuRestrict; // новое меню

 CMenu* pMenu;

 // Получаем указатель на текущее меню

 pMenu = this->GetMenu;

 // Связываем меню с объектом menuOld

 menuOld.Attach(pMenu->m_hMenu);

 // Удаляем меню

 menuOld.DestroyMenu;

 // Загружаем меню IDR_RESTRICT_MENU

 menuRestrict.LoadMenu(IDR_RESTRICT_MENU);

 // Устанавливаем загруженное меню

 SetMenu(&menuRestrict);

 // Разрываем связь меню с объектом menuRestrict

 menuRestrict.Detach;

}

//============================================================

// Метод OnFullMenu класса CMultiMenuWindow

// Изменяем меню приложения с IDR_RESTRICT_MENU на

// IDR_FULL_MENU

//============================================================

void CMultiMenuWindow::OnFullMenu {

 CMenu menuOld;

 CMenu menuRestrict;

 CMenu* pMenu;

 pMenu = this->GetMenu;

 menuOld.Attach(pMenu->m_hMenu);

 menuOld.DestroyMenu;

 menuRestrict.LoadMenu(IDR_FULL_MENU);

 SetMenu(&menuRestrict);

 menuRestrict.Detach;

}

//============================================================

// Метод OnCommand класса CMultiMenuWindow

//============================================================

void CMultiMenuWindow::OnCommand {

 MessageBox("Command not implemented");

}

//============================================================

Поделиться:
Популярные книги

Я еще царь. Книга XXX

Дрейк Сириус
30. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
5.00
рейтинг книги
Я еще царь. Книга XXX

Газлайтер. Том 28

Володин Григорий Григорьевич
28. История Телепата
Фантастика:
боевая фантастика
аниме
попаданцы
5.00
рейтинг книги
Газлайтер. Том 28

Газлайтер. Том 38

Володин Григорий Григорьевич
38. История Телепата
Фантастика:
городское фэнтези
аниме
попаданцы
5.00
рейтинг книги
Газлайтер. Том 38

Травник

Назимов Константин Геннадьевич
1. Травник
Фантастика:
фэнтези
5.00
рейтинг книги
Травник

Идеальный мир для Лекаря 23

Сапфир Олег
23. Лекарь
Фантастика:
юмористическое фэнтези
аниме
фэнтези
5.00
рейтинг книги
Идеальный мир для Лекаря 23

Отряд

Валериев Игорь
5. Ермак
Фантастика:
альтернативная история
5.25
рейтинг книги
Отряд

Мастер 3

Чащин Валерий
3. Мастер
Фантастика:
героическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Мастер 3

Кодекс Крови. Книга V

Борзых М.
5. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.25
рейтинг книги
Кодекс Крови. Книга V

Черный рынок

Вайс Александр
6. Фронтир
Фантастика:
боевая фантастика
космическая фантастика
космоопера
5.00
рейтинг книги
Черный рынок

Принадлежать им

Зайцева Мария
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Принадлежать им

Том 12. Из 'Автобиографии'. Из записных книжек 1865-1905. Избранные письма

Твен Марк
Проза:
классическая проза
5.00
рейтинг книги
Том 12. Из 'Автобиографии'. Из записных книжек 1865-1905. Избранные письма

Я снова князь. Книга XXIII

Дрейк Сириус
23. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
5.00
рейтинг книги
Я снова князь. Книга XXIII

На границе империй. Том 10. Часть 13

INDIGO
Вселенная EVE Online
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 10. Часть 13

Московское золото или нежная попа комсомолки. Часть Вторая

Хренов Алексей
2. Летчик Леха
Фантастика:
попаданцы
5.00
рейтинг книги
Московское золото или нежная попа комсомолки. Часть Вторая