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.
>//{{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.