Создание страницы свойств. Страница специальных свойств

   
На этом шаге мы рассмотрим создание страницы специальных свойств.

   
По завершении реализации интерфейса ActiveX-элемента стоит заняться созданием страниц свойств, на которых пользователи
смогут просматривать и устанавливать параметры ActiveX-элемента. В каркасе имеется ряд макросов
PROPPAGEID, позволяющих определять массив идентификаторов страниц свойств для элемента управления.
Код по умолчанию, созданный мастером ActiveX ControlWizard проекта OneArmedBandit, находится в
файле OneArmedBanditCtl.cpp и выглядит так:

BEGIN_PROPPAGEIDS(COneArmedBanditCtrl, 1)
	PROPPAGEID(COneArmedBanditPropPage::guid)
END_PROPPAGEIDS(COneArmedBanditCtrl)

   
Обратите внимание, что эта структура, в отличие от диспетчерской карты и карты событий, не поддерживается
ClassWizard. Данный код вы должны написать самостоятельно.
Страница специальных свойств

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

   
Сейчас мы создадим страницу свойств, на которой пользователь сможет задавать значение специального свойства
NumberOfSymbols.

  • Реализация страницы специальных свойств.
  • В ResourceView раскройте узел Dialog. Чтобы начать редактировать
    шаблон диалога, дважды щелкните IDD_PROPPAGE_ONEARMEDBANDIT.
  • Удалите строку с комментарием // TODO. Добавьте статический текст и поле ввода так, чтобы шаблон
    диалогового окна выглядел, как показано на рисунке 1.


    Рис.1. Реализация страницы специальных свойств
    Присвойте этому элементу управления идентификатор IDC_NUMSYMBOLS. На вкладке Styles диалогового
    окна Edit Properties установите флажок Number.

  • Нажмите CTRL+W, чтобы открыть ClassWizard, и щелкните вкладку Member Variables.
  • Щелкните Add Variable, чтобы добавить переменную-член категории Value с именем m_numsymbols.
    Тип переменной будет short. В поле Optional property name введите NumberOfSymbols и затем
    щелкните ОК.


    Рис.2. Добавление переменной

  • Задайте проверку диапазона вводимого числа, определив в качестве нижнего предела 3 и верхнего - 7. Щелкните ОК.

   
Посмотрите на текст функции DoDataExchange() класса СOneArmedBanditPropPage. Обратите внимание, что
в дополнение к DDX/DDV-функциям ClassWizard добавил следующую строку:

  DDP_Text(pDX, IDC_NUMSYMBOLS, m_numsymbols, _T("NumberOfSymbols") );

   
Это одна из ряда функций с префиксом DDP_, предоставляемых MFC для обмена данными между страницей
свойств и самими свойствами ActiveX-элемента. Обратите внимание, что здесь используется диспетчерское имя свойства,
так что Вам не придется писать код лдя создания дополнительных связей между классами COneArmedBanditPropPage и
COneArmedBanditCtrl.

   
Текст приложения можно взять здесь (34,3 Кб).

   
На следующем шаге мы рассмотрим страницу стандартных свойств.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий