Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT | страница 70



>//////////////////////////////////////////////////////////////

>// Диалоговая панель

>//

>DIALOGPANEL DIALOG DISCARDABLE 0, 0, 186, 46

>STYLE DS_MODALFRAME|DS_CENTER|WS_POPUP|WS_CAPTION|WS_SYSMENU

>CAPTION "My Dialog"

>FONT 8, "MS Sans Serif"

>BEGIN

> DEFPUSHBUTTON "OK",IDOK,129,7,50,14

> PUSHBUTTON "Cancel",IDCANCEL,129,24,50,14

> PUSHBUTTON "Default",IDC_DEFAULT,70,7,50,14

> EDITTEXT IDC_EDIT,7,24,113,14,ES_AUTOHSCROLL

> LTEXT "Line Editor",IDC_STATIC,9,10,34,8

>END

Идентификаторы, задействованные в файле ресурсов приложения по умолчанию, определяются во включаемом файле resource.h. Мы привели этот файл в листинге 2.15. Вы можете изменить название включаемого файла, выбрав из меню View строку Resource Includes.

Листинг 2.15. Файл resource.h

>//{{NO_DEPENDENCIES}}

>// Включаемый файл, созданный Microsoft Developer Studio

>// Используется в файле ресурсов MFDlgRes.rc

>//

>#define IDR_MENU 101

>#define IDC_DEFAULT 1000

>#define IDC_EDIT 1001

>#define ID_TEST_DIALOG 40001

>#define ID_TEST_EXIT 40002


>// Следующие значения идентификаторов используются по

>// умолчанию для новых объектов

>#ifdef APSTUDIO_INVOKED

> #ifndef APSTUDIO_READONLY_SYMBOLS

>  #define _APS_NEXT_RESOURCE_VALUE 103

>  #define _APS_NEXT_COMMAND_VALUE 40003

>  #define _APS_NEXT_CONTROL_VALUE 1003

>  #define _APS_NEXT_SYMED_VALUE 101

> #endif

>#endif

Обратите внимание, что включаемый файл resource.h содержит не только определения идентификаторов, но также дополнительную служебную информацию. Она расположена после директивы #ifdef APSTUDIO_INVOKED и представляет собой ряд макроопределений. Данные макроопределения используются редактором ресурсов при создании новых идентификаторов.

Откройте страницу ClassView в окне Project Workspace. Обратите внимание, что если вы переместите окно Project Workspace к границе главного окна Visual C++, его заголовок пропадет и окно станет похоже на обычную панель управления. Если горизонтальный размер окна Project Workspace уменьшится, тогда исчезнут названия в закладках страниц и останутся только маленькие пиктограммы (рис. 2.31).

В ней отображаются два класса CMFDialogApp и CMyDialog. В главный класс приложения CMFDialogApp входит метод InitInstance. В класс CMyDialog входит конструктор CMyDialog, метод DoDataExchange , предназначенный для обмена данными между органами управления диалоговой панели и привязанных к ним переменных, а также методы OnOK , OnCancel и OnDefault. Последние три метода вызываются когда пользователь нажимает на кнопки OK, Cancel и Default, расположенные в диалоговой панели. Кроме того, определена глобальная переменная MFDialogApp.