BEGIN
"resource.h\0"
END
2 TEXTINCLUDE DISCARDABLE
BEGIN
"#include ""afxres.h""\r\n"
"\0"
END
3 TEXTINCLUDE DISCARDABLE
BEGIN
"\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
//////////////////////////////////////////////////////////////
//
// Menu
//
IDR_MENU MENU DISCARDABLE
BEGIN
POPUP "Work"
BEGIN
MENUITEM "Process", ID_WORK_PROCESS
MENUITEM "Direct set ADD", ID_WORK_DIRECT_ADD
MENUITEM "Direct set SUB", ID_WORK_DIRECT_SUB
MENUITEM "Disable ADD SUB", ID_WORK_DISABLE_ADDSUB
MENUITEM "Switch TEXT", ID_WORK_ON_SWITCH_TEXT
MENUITEM SEPARATOR
MENUITEM "Exit", ID_WORK_EXIT
END
END
//////////////////////////////////////////////////////////////
//
// String Table
//
STRINGTABLE DISCARDABLE
BEGIN
ID_INDICATOR_ADD "START"
END
STRINGTABLE DISCARDABLE
BEGIN
ID_INDICATOR_PROGRESS "neve display"
ID_INDICATOR_TEXT "TEXT"
END
STRINGTABLE DISCARDABLE
BEGIN
ID_WORK_PROCESS "Display and play progress bar"
ID_WORK_DIRECT_ADD "Set indicator ID_INDICATOR_ADD to ADD"
ID_WORK_ON_SWITCH_TEXT "Switch text in indicator ID_INDICATOR_TEXT"
ID_WORK_DIRECT_SUB "Set indicator ID_INDICATOR_ADD to SUB"
ID_WORK_DISABLE_ADDSUB "Disable indicator ID_INDICATOR_ADD"
ID_WORK_EXIT "Exit application"
END
STRINGTABLE DISCARDABLE
BEGIN
AFX_IDS_IDLEMESSAGE "Ready"
END
#endif // Russian resources
//////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
//////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
//////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED
Идентификаторы ресурсов приложения Status определены в файле resource.h. Этот файл создается автоматически редактором ресурсов Microsoft Visual C++. Исходный текст файла resource.h представлен в листинге 3.15.
Листинг 3.15. Файл resource.h
//{{NO_DEPENDENCIES}}
// Microsoft Developer Studio generated include file.
// Used by Status.rc
//
#define ID_INDICATOR_ADD 1
#define IDR_MENU 101
#define ID_INDICATOR_PROGRESS 102
#define ID_INDICATOR_TEXT 103
#define ID_WORK_PROCESS 40001
#define ID_WORK_DIRECT_ADD 40006
#define ID_WORK_ON_SWITCH_TEXT 40007
#define ID_WORK_DIRECT_SUB 40008
#define ID_WORK_DISABLE_ADDSUB 40009
#define ID_WORK_EXIT 40010
#define ID_TIMER_CHECK 0xE001
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 106
#define _APS_NEXT_COMMAND_VALUE 40011
#define _APS_NEXT_CONTROL_VALUE 1000
#define _APS_NEXT_SYMED_VALUE 104
#endif
#endif
Постройте приложение Status и запустите его. На экране появится главное окно приложения, в нижней части которого отображается панель состояния (рис. 3.23).
Рис. 3.23. Приложение Status
В панели состояния расположены несколько индикаторов. Самый первый индикатор, размер которого зависит от размера окна приложения, отображает подсказку о выбранной строке меню приложения или системного меню, а если приложение “бездействует” в нем отображается строка Ready.
Следующий индикатор OVR. В нашем приложении он не действует. Вы сами можете разработать программный код для управления этим индикатором.
Вслед за идентификатором OVR следует свободное пространство, занятое индикатором. Этот индикатор не отображается на панели и предназначен только для резервирования места под линейный индикатор progress bar.
Если вы выберите из меню Work строку Process, то на этом месте появится линейный индикатор, плавно меняющий свое значение. Мы используем линейный индикатор, чтобы отображать ход какого-нибудь длительного процесса.
После того, как линейный индикатор покажет окончание процесса, он будет удален с панели состояния, а в самом первом индикаторе появится надпись Process completed.
Затем в панели состояния следуют три стандартных индикатора CAP, NUM и SCRL, которые отображают текущее состояние клавиш , и .
Следующий индикатор, который мы рассмотрим, называется TEXT. Если вы выберите из меню Work строку Switch TEXT, то надпись TEXT в индикаторе заменится на PIC. Повторный выбор данной строки меню восстановит предыдущее состояние индикатора.
Последний индикатор в панели состояния START. Этот индикатор управляет тремя строками меню Work. При выборе строки Direct set ADD в индикаторе отображается строка ADD, а при выборе строки Direct set SUB – SUB. Во втором случае также меняется оформление индикатора. Если вы выберите из меню Work строку Disable ADD SUB, то индикатор будет заблокирован.
Как работает приложение Status
В приложении Status определены два класса – главный класс приложения CStateApp и класс главного окна приложения CStateWindow.
Читать дальше