// Обрабатывает сообщение ON_UPDATE_COMMAND_UI

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

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

void CStateWindow::OnUpdateTEXT(CCmdUI* pCmdUI) {

 // В зависимости от состояния флага bIndicatorTEXT

 // отображаем в индикаторе ID_INDICATOR_TEXT

 // строку TEXT или PIC

 if (bIndicatorTEXT) pCmdUI->SetText("TEXT"); // отображаем строку TEXT

 else pCmdUI->SetText("PIC"); // отображаем строку PIC

 // Разрешаем отображение текста в индикаторе

 pCmdUI->Enable;

}

Создайте новый файл ресурсов и включите его в проект под именем Status.rc. Включите в него меню, присвоив ему идентификатор IDR_MENU. Введите строки меню IDR_MENU в соответствии с представленным нами файлом ресурсов (листинг 3.14). Для всех строк меню введите их описания. Они будут записаны в файл ресурсов как строковые ресурсы, имеющие одинаковые идентификаторы со строками меню.

Добавьте в файл ресурсов строку Ready, выбрав для нее идентификатор AFX_IDS_IDLEMESSAGE. Эта строка будет отображаться в панели состояния во время “бездействия” приложения.

Добавьте в файл ресурсов строки, представляющие индикаторы панели состояния: ID_INDICATOR_ADD, ID_INDICATOR_PROGRESS и ID_INDICATOR_TEXT.

Листинг 3.14. Файл Status.rc

//Microsoft Developer Studio generated resource script.

//

#include "resource.h"

#define APSTUDIO_READONLY_SYMBOLS

//////////////////////////////////////////////////////////////

//

// Generated from the TEXTINCLUDE 2 resource.

//

#include "afxres.h"

//////////////////////////////////////////////////////////////

#undef APSTUDIO_READONLY_SYMBOLS

//////////////////////////////////////////////////////////////

// Russian resources

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_RUS)

#ifdef _WIN32

LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT

#pragma code_page(1251)

#endif //_WIN32

#ifdef APSTUDIO_INVOKED

//////////////////////////////////////////////////////////////

//

// TEXTINCLUDE

//

1 TEXTINCLUDE DISCARDABLE

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"

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

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