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

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

Жанры

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

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

Шрифт:

BEGIN_MESSAGE_MAP(CMultiMenuWindow, CFrameWnd)

 // Макрокоманда вызывает метод OnCreate

 ON_WM_CREATE

 // Макрокоманда вызывает метод OnContextMenu

 ON_WM_CONTEXTMENU

 // Макрокоманды для обработки командных сообщений

 ON_COMMAND(ID_MENU_DISABLE, OnDisable)

 ON_COMMAND(ID_MISSION_CONSTRUCT, OnConstruct)

 ON_COMMAND(ID_FILE_EXIT, OnExit)

 ON_COMMAND(ID_MISSION_PROCESS, OnCommand)

 ON_COMMAND(ID_MENU_RESTRICT, OnRestrictMenu)

 ON_COMMAND(ID_MENU_FULL, OnFullMenu)

 //
Обработчики сообщений ON_UPDATE_COMMAND_UI

 ON_UPDATE_COMMAND_UI(ID_MISSION_PROCESS, OnUpdateProcess)

 ON_UPDATE_COMMAND_UI(ID_MISSION_CONSTRUCT, OnUpdateConstruct)

 ON_UPDATE_COMMAND_UI(ID_MENU_DISABLE, OnUpdateDisable)

END_MESSAGE_MAP

// Индикатор панели управления

UINT indicator = ID_SEPARATOR;

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

// Метод InitInstance класса CMultiMenuApp

// Создает главное окно приложения и отображает его на экране

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

BOOL CMultiMenuApp::InitInstance {

 m_pMainWnd = new CMultiMenuWindow;

 m_pMainWnd->ShowWindow(m_nCmdShow);

 m_pMainWnd->UpdateWindow;

 return TRUE;

}

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

// Конструктор класса 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

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

Последний Паладин. Том 14

Саваровский Роман
14. Путь Паладина
Фантастика:
аниме
фэнтези
попаданцы
5.75
рейтинг книги
Последний Паладин. Том 14

Товарищ "Чума" 2

lanpirot
2. Товарищ "Чума"
Фантастика:
городское фэнтези
попаданцы
альтернативная история
5.00
рейтинг книги
Товарищ Чума 2

Геном хищника. Книга третья

Гарцевич Евгений Александрович
3. Я - Легенда!
Фантастика:
боевая фантастика
рпг
попаданцы
5.00
рейтинг книги
Геном хищника. Книга третья

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

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

Чужая семья генерала драконов

Лунёва Мария
6. Генералы драконов
Фантастика:
фэнтези
5.00
рейтинг книги
Чужая семья генерала драконов

Древесный маг Орловского княжества

Павлов Игорь Васильевич
1. Орловское княжество
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Древесный маг Орловского княжества

Я еще барон. Книга III

Дрейк Сириус
3. Дорогой барон!
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Я еще барон. Книга III

Личник

Валериев Игорь
3. Ермак
Фантастика:
альтернативная история
6.33
рейтинг книги
Личник

Лекарь Империи

Карелин Сергей Витальевич
1. Лекарь Империи
Фантастика:
городское фэнтези
аниме
дорама
фэнтези
попаданцы
5.00
рейтинг книги
Лекарь Империи

Товарищ "Чума" 7

lanpirot
7. Товарищ "Чума"
Фантастика:
городское фэнтези
попаданцы
альтернативная история
5.00
рейтинг книги
Товарищ Чума 7

Цикл романов "Целитель". Компиляция. Книги 1-17

Большаков Валерий Петрович
Целитель
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Цикл романов Целитель. Компиляция. Книги 1-17

Князь Мещерский

Дроздов Анатолий Федорович
3. Зауряд-врач
Фантастика:
альтернативная история
8.35
рейтинг книги
Князь Мещерский

Возвращение

Кораблев Родион
5. Другая сторона
Фантастика:
боевая фантастика
6.23
рейтинг книги
Возвращение

Кодекс Охотника. Книга XXI

Винокуров Юрий
21. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XXI