class CStateApp : public CWinApp {

public:

 // Мы будем переопределять метод InitInstance,

 // предназначенный для инициализации приложения

 virtual BOOL InitInstance;

};

// Создаем объект приложение класса CStateApp

CStateApp StateApp;

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

// Класс CStateWindow – представляет главное окно

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

class CStateWindow : public CFrameWnd {

protected:

 CStatusBar  m_wndStatusBar; // Панель состояния

 BOOL  bIndicatorTEXT;       // Флаг для управления

                             // индикатором

                             // ID_INDICATOR_TEXT

protected:

 // Метод для создания окна приложения и панели состояния

 afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);

public:

 // Объявляем конструктор класса CStateWindow

 CStateWindow;

 // Объявляем методы для обработки команд меню

 afx_msg BOOL OnMenuDirectADD_SUB(UINT nID);

 afx_msg void OnMenuProcessBar;

 afx_msg void OnMenuDisableADD_SUB;

 afx_msg void OnMenuSwitchTEXT;

 afx_msg void OnMenuExit;

 // Метод для обработки команды ON_UPDATE_COMMAND_UI

 // от индикатора ID_INDICATOR_TEXT

 afx_msg void OnUpdateTEXT(CCmdUI* pCmdUI);

 // Макрокоманда необходима, так как класс

 // CStateWindow обрабатывает сообщения

 DECLARE_MESSAGE_MAP   

};

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

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

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

BEGIN_MESSAGE_MAP(CStateWindow, CFrameWnd)

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

 ON_WM_CREATE

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

 ON_UPDATE_COMMAND_UI(ID_INDICATOR_TEXT, OnUpdateTEXT)

 // Обработчики команд меню Work

 ON_COMMAND(ID_WORK_PROCESS, OnMenuProcessBar)

 ON_COMMAND(ID_WORK_DISABLE_ADDSUB, OnMenuDisableADD_SUB)

 ON_COMMAND(ID_WORK_ON_SWITCH_TEXT, OnMenuSwitchTEXT)  

 ON_COMMAND_EX(ID_WORK_DIRECT_ADD, OnMenuDirectADD_SUB)

 ON_COMMAND_EX(ID_WORK_DIRECT_SUB, OnMenuDirectADD_SUB) 

 ON_COMMAND(ID_WORK_EXIT, OnMenuExit)

END_MESSAGE_MAP

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

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

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

// (до тех пор, пока он не изменен методом SetPaneInfo)

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

static UINT indicators[] = {

 ID_SEPARATOR,          // Самый первый индикатор

 ID_INDICATOR_OVR,      // Индикатор OVR

 ID_INDICATOR_PROGRESS, // Резервирование места для

                        // progress bar

 ID_INDICATOR_CAPS,     // Индикатор клавиши

 ID_INDICATOR_NUM,      // Индикатор клавиши

 ID_INDICATOR_SCRL,     // Индикатор клавиши

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

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