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

// Таблица сообщений класса CMultiMenuWindow

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

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");

Перейти на страницу:

Похожие книги