Элементы управления ActiveX в MFC. Страницы свойств

Страницы свойств позволяют пользователю элемента управления ActiveX просматривать и изменять свойства элемента управления ActiveX. К этим свойствам обращается диалоговое окно свойств элемента управления, содержащее одну или несколько страниц свойств, которые предоставляют настраиваемый графический интерфейс для просмотра и редактирования свойств элемента управления.

Важно!

ActiveX — это устаревшая технология, которую не следует использовать для новых разработок. Дополнительные сведения о современных технологиях, которые заменяют ActiveX, см. в разделе Элементы ActiveX.

Страницы свойств элемента управления ActiveX отображаются двумя способами:

  • При вызове команды свойств элемента управления (OLEIVERB_PROPERTIES) элемент управления открывает диалоговое окно модального свойства, содержащее страницы свойств элемента управления.

  • Контейнер может отображать собственное диалоговое окно без режима, в котором отображаются страницы свойств выбранного элемента управления.

Диалоговое окно свойств (иллюстрированное на следующем рисунке) состоит из области для отображения текущей страницы свойств, вкладок для переключения между страницами свойств и коллекции кнопок, выполняющих общие задачи, такие как закрытие диалогового окна страницы свойств, отмена внесенных изменений или немедленное применение изменений в элементе ActiveX.

Properties dialog box for Circ3.
Диалоговое окно "Свойства"

В этой статье рассматриваются разделы, связанные с использованием страниц свойств в элементе управления ActiveX. Например:

Дополнительные сведения об использовании страниц свойств в элементе ActiveX см. в следующих статьях:

Сведения об использовании листов свойств в приложении MFC, отличном от элемента управления ActiveX, см. в таблицах свойств.

Реализация страницы свойств по умолчанию

Если вы используете мастер управления ActiveX для создания проекта элемента управления, мастер элементов ActiveX предоставляет класс страницы свойств по умолчанию для элемента управления, производный от класса COlePropertyPage. Изначально эта страница свойств пуста, но вы можете добавить в него любой элемент управления диалогового окна или набор элементов управления. Так как мастер управления ActiveX создает только один класс страницы свойств по умолчанию, необходимо создать дополнительные классы страниц свойств (также производные от COlePropertyPage) с помощью представления классов. Дополнительные сведения об этой процедуре см. в разделе "Элементы activeX MFC: добавление другой страницы настраиваемых свойств".

Реализация страницы свойств (в данном случае по умолчанию) — это трехэтапный процесс:

Реализация страницы свойств

  1. Добавьте производный COlePropertyPageкласс в проект элемента управления. Если проект был создан с помощью мастера управления ActiveX (как в данном случае), класс страницы свойств по умолчанию уже существует.

  2. Используйте редактор диалоговых окон для добавления элементов управления в шаблон страницы свойств.

  3. DoDataExchange Настройте функцию производного COlePropertyPageкласса для обмена значениями между элементом управления страницы свойств и элементом ActiveX.

Например, в следующих процедурах используется простой элемент управления (с именем Sample). Образец был создан с помощью мастера управления ActiveX и содержит только свойство заголовка акций.

Добавление элементов управления на страницу свойств

Добавление элементов управления на страницу свойств

  1. Открыв проект элемента управления, откройте представление ресурсов.

  2. Дважды щелкните значок каталога диалогового окна .

  3. Откройте диалоговое окно IDD_PROPPAGE_SAMPLE.

    Мастер элементов управления ActiveX добавляет имя проекта в конец идентификатора диалогового окна, в этом случае — пример.

  4. Перетащите выбранный элемент управления из панели элементов в область диалогового окна.

  5. В этом примере элемент управления "Caption:" и элемент управления "Поле редактирования" с идентификатором IDC_CAPTION достаточно.

  6. Нажмите кнопку "Сохранить " на панели инструментов, чтобы сохранить изменения.

Теперь, когда пользовательский интерфейс был изменен, необходимо связать поле редактирования со свойством 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 Текст со свойством элемента управления.

См. также

Элементы ActiveX библиотеки MFC
Класс COlePropertyPage