IDC_COMBO_COLOUR, 0x403, 6, 0, 0x7247, 0x6565, 0x006e,
IDC_COMBO_COLOUR, 0x403, 7, 0, 0x6559, 0x6c6c, 0x776f, "\000"
IDC_COMBO_COLOUR, 0x403, 6, 0, 0x6c42, 0x6361, 0x006b,
IDC_COMBO_COLOUR, 0x403, 6, 0, 0x6857, 0x7469, 0x0065,
0
END
//////////////////////////////////////////////////////////////
//
// String Table
//
STRINGTABLE DISCARDABLE
BEGIN
IDC_RADIO_LEFT "Left radio box"
IDC_RADIO_CENTER "Center radio box"
IDC_RADIO_RIGHT "Right radio box"
IDC_BUTTON_SET "Set button pressed"
END
STRINGTABLE DISCARDABLE
BEGIN
IDC_BUTTON_CLEAR "Clear button pressed"
END
#endif // Russian resources
//////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
//////////////////////////////////////////////////////////////
// Generated from the TEXTINCLUDE 3 resource.
//
//////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED
Идентификаторы ресурсов приложения DialogBar и идентификаторы органов управления диалоговой панели IDD_DIALOG_BAR определены в файле resource.h. Этот файл создается автоматически редактором ресурсов Microsoft Visual C++. Исходный текст файла представлен в листинге 3.12.
Листинг 3.12. Файл resource.h
//{{NO_DEPENDENCIES}}
// Microsoft Developer Studio generated include file.
// Used by DialogBar.rc
//
#define IDD_DIALOG_BAR 101
#define IDC_RADIO_LEFT 1004
#define IDC_RADIO_CENTER 1005
#define IDC_RADIO_RIGHT 1006
#define IDC_BUTTON_SET 1007
#define IDC_BUTTON_CLEAR 1008
#define IDC_COMBO_COLOUR 1012
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 104
#define _APS_NEXT_COMMAND_VALUE 40001
#define _APS_NEXT_CONTROL_VALUE 1014
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif
Постройте приложение DialogBar и запустите его. На экране появится главное окно приложения, в верхней части которого отображается диалоговая панель управления (рис. 3.19).
Рис. 3.19. Приложение DialogBar
Поработайте с приложением DialogBar. Если вы будете нажимать на кнопки диалоговой панели управления, изменять положение переключателя или выбирать новые строки из списка combo-box, то на экране будут появляться короткие сообщения, описывающие выбранный орган управления.
Как работает приложение DialogBar
В приложении DialogBar определены всего только два класса – это главный класс приложения CDlgBarApp и класс главного окна приложения CDlgBarWindow. Как и во многих других приложениях, посвященных использованию панелей управления, главное окно приложения по сути является его единственным окном. Однако мы сохранили за ним это почетное название, чтобы внести однообразие в описание приложений, созданных с использованием MFC AppWizard и без него.
Главный класс приложения CDlgBarApp
Главный класс приложения CDlgBarApp наследуется от базового класса CWinApp. Объект DlgBarApp класса CDlgBarApp объявлен как глобальный и создается сразу после запуска приложения.
В класс CDlgBarApp входит только метод InitInstance. Он создает главное окно приложения, представленное классом CDlgBarWindow, наследованным от класса CFrameWnd. Мы не станем подробно рассматривать этот метод, так как он фактически идентичен одноименному методу приложений Bar и MultiBar, представленных выше.
Класс главного окна приложения CDlgBarWindow
Класс CDlgBarWindow управляет главным окном приложения, создает диалоговую панель управления, а также обрабатывает сообщения, поступающие от диалоговой панели управления:
class CDlgBarWindow : public CFrameWnd {
// Определяем панель управления
protected:
// Панель управления на основе класса CDialogBar
CDialogBar m_wndDialogBar;
protected:
// Метод OnCreate используется для создания диалоговой
// панели управления
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
public:
// Объявляем конструктор класса CDlgBarWindow
CDlgBarWindow();
// Объявляем методы для обработки команд от диалоговой
// панелей управления
afx_msg BOOL DlgBarCommand(UINT nID);
afx_msg void DlgBarCombo();
// Макрокоманда необходима, так как класс
// CDlgBarWindow обрабатывает сообщения
DECLARE_MESSAGE_MAP()
};
Кроме ряда методов, в класс CDlgBarWindow входит элемент m_wndDialogBar класса CDialogBar. Этот элемент представляет диалоговую панель управления, которая будет отображаться в главном окне приложения.
Рассмотрим отдельные методы класса CDlgBarWindow более подробно.
Сейчас для нас наиболее важен метод OnCreate, который собственно, и создает диалоговую панель управления приложения DialogBar. В таблице сообщений класса CDlgBarWindow, находится макрокоманда ON_WM_CREATE. Поэтому в процессе создания главного окна приложения вызывается метод OnCreate.
Читать дальше