Элементы управления ActiveX в MFC. Страницы свойств
Страницы свойств позволяют пользователю элемента управления ActiveX просматривать и изменять свойства элемента управления ActiveX. К этим свойствам обращается диалоговое окно свойств элемента управления, содержащее одну или несколько страниц свойств, которые предоставляют настраиваемый графический интерфейс для просмотра и редактирования свойств элемента управления.
Важно!
ActiveX — это устаревшая технология, которую не следует использовать для новых разработок. Дополнительные сведения о современных технологиях, которые заменяют ActiveX, см. в разделе Элементы ActiveX.
Страницы свойств элемента управления ActiveX отображаются двумя способами:
При вызове команды свойств элемента управления (OLEIVERB_PROPERTIES) элемент управления открывает диалоговое окно модального свойства, содержащее страницы свойств элемента управления.
Контейнер может отображать собственное диалоговое окно без режима, в котором отображаются страницы свойств выбранного элемента управления.
Диалоговое окно свойств (иллюстрированное на следующем рисунке) состоит из области для отображения текущей страницы свойств, вкладок для переключения между страницами свойств и коллекции кнопок, выполняющих общие задачи, такие как закрытие диалогового окна страницы свойств, отмена внесенных изменений или немедленное применение изменений в элементе ActiveX.
Диалоговое окно "Свойства"
В этой статье рассматриваются разделы, связанные с использованием страниц свойств в элементе управления ActiveX. Например:
Дополнительные сведения об использовании страниц свойств в элементе ActiveX см. в следующих статьях:
Элементы ActiveX в MFC. Добавление дополнительной страницы пользовательских свойств
Элементы ActiveX в MFC. Использование стандартных страниц свойств
Сведения об использовании листов свойств в приложении MFC, отличном от элемента управления ActiveX, см. в таблицах свойств.
Реализация страницы свойств по умолчанию
Если вы используете мастер управления ActiveX для создания проекта элемента управления, мастер элементов ActiveX предоставляет класс страницы свойств по умолчанию для элемента управления, производный от класса COlePropertyPage. Изначально эта страница свойств пуста, но вы можете добавить в него любой элемент управления диалогового окна или набор элементов управления. Так как мастер управления ActiveX создает только один класс страницы свойств по умолчанию, необходимо создать дополнительные классы страниц свойств (также производные от COlePropertyPage
) с помощью представления классов. Дополнительные сведения об этой процедуре см. в разделе "Элементы activeX MFC: добавление другой страницы настраиваемых свойств".
Реализация страницы свойств (в данном случае по умолчанию) — это трехэтапный процесс:
Реализация страницы свойств
Добавьте производный
COlePropertyPage
класс в проект элемента управления. Если проект был создан с помощью мастера управления ActiveX (как в данном случае), класс страницы свойств по умолчанию уже существует.Используйте редактор диалоговых окон для добавления элементов управления в шаблон страницы свойств.
DoDataExchange
Настройте функцию производногоCOlePropertyPage
класса для обмена значениями между элементом управления страницы свойств и элементом ActiveX.
Например, в следующих процедурах используется простой элемент управления (с именем Sample). Образец был создан с помощью мастера управления ActiveX и содержит только свойство заголовка акций.
Добавление элементов управления на страницу свойств
Добавление элементов управления на страницу свойств
Открыв проект элемента управления, откройте представление ресурсов.
Дважды щелкните значок каталога диалогового окна .
Откройте диалоговое окно IDD_PROPPAGE_SAMPLE.
Мастер элементов управления ActiveX добавляет имя проекта в конец идентификатора диалогового окна, в этом случае — пример.
Перетащите выбранный элемент управления из панели элементов в область диалогового окна.
В этом примере элемент управления "Caption:" и элемент управления "Поле редактирования" с идентификатором IDC_CAPTION достаточно.
Нажмите кнопку "Сохранить " на панели инструментов, чтобы сохранить изменения.
Теперь, когда пользовательский интерфейс был изменен, необходимо связать поле редактирования со свойством Caption. Это делается в следующем разделе, изменив функцию CSamplePropPage::DoDataExchange
.
Настройка функции DoDataExchange
Функция CWnd::D oDataExchange позволяет связать значения страниц свойств с фактическими значениями свойств в элементе управления. Чтобы установить ссылки, необходимо сопоставить соответствующие поля страницы свойств с соответствующими свойствами элемента управления.
Эти сопоставления реализуются с помощью страницы свойств DDP_ функций. Функции DDP_ работают как функции DDX_, используемые в стандартных диалоговых окнах MFC, за исключением одного исключения. Помимо ссылки на переменную-член, DDP_ функции принимают имя свойства элемента управления. Ниже приведена типичная запись в DoDataExchange
функции для страницы свойств.
DDP_Text(pDX, IDC_CAPTION, m_caption, _T("Caption"));
Эта функция связывает m_подпись переменную члена страницы свойств с подписью с помощью DDP_TEXT
функции.
После вставки элемента управления страницы свойств необходимо установить связь между элементом управления страницы свойств, IDC_CAPTION и фактическим свойством элемента управления, caption, используя DDP_Text
функцию, как описано выше.
Страницы свойств доступны для других типов элементов управления диалоговым окном, таких как проверка поля, переключатели и списки. В таблице ниже перечислены все наборы страниц свойств DDP_ функций и их целей:
Функции страницы свойств
Имя функции | Используйте эту функцию для связывания |
---|---|
DDP_CBIndex |
Индекс выбранной строки в поле со списком со свойством элемента управления. |
DDP_CBString |
Выбранная строка в поле со списком со свойством элемента управления. Выбранная строка может начинаться с той же буквы, что и значение свойства, но не обязательно полностью совпадать с ним. |
DDP_CBStringExact |
Выбранная строка в поле со списком со свойством элемента управления. Выбранная строка и строковое значение свойства должны совпадать точно. |
DDP_Check |
Поле проверка со свойством элемента управления. |
DDP_LBIndex |
Индекс выбранной строки в списке со свойством элемента управления. |
DDP_LBString |
Выбранная строка в поле списка со свойством элемента управления. Выбранная строка может начинаться с той же буквы, что и значение свойства, но не обязательно полностью совпадать с ним. |
DDP_LBStringExact |
Выбранная строка в поле списка со свойством элемента управления. Выбранная строка и строковое значение свойства должны совпадать точно. |
DDP_Radio |
Переключатель со свойством элемента управления. |
DDP_Text |
Текст со свойством элемента управления. |