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, // Индикатор клавиши