Указание страниц свойств
При создании элемента activeX часто требуется связать его со страницами свойств, которые можно использовать для задания свойств элемента управления. Контейнеры управления используют ISpecifyPropertyPages
интерфейс, чтобы узнать, какие страницы свойств можно использовать для задания свойств элемента управления. Вам потребуется реализовать этот интерфейс в элементе управления.
Чтобы реализовать ISpecifyPropertyPages
с помощью ATL, выполните следующие действия.
Наследуйте класс от ISpecifyPropertyPagesImpl.
Добавьте запись для
ISpecifyPropertyPages
карты COM класса.Добавьте запись PROP_PAGE на карту свойств для каждой страницы, связанной с элементом управления.
Примечание.
При создании стандартного элемента управления с помощью мастера управления ATL необходимо добавить только записи PROP_PAGE на карту свойств. Мастер создает необходимый код для других шагов.
Контейнеры, которые хорошо ведут себя, будут отображать указанные страницы свойств в том же порядке, что и записи PROP_PAGE в карте свойств. Как правило, следует поместить стандартные записи страниц свойств после записей для пользовательских страниц на карте свойств, чтобы пользователи сначала видели страницы, относящиеся к вашему элементу управления.
Пример
Следующий класс для элемента управления календарем использует ISpecifyPropertyPages
интерфейс, чтобы сообщить контейнерам, что его свойства можно задать с помощью настраиваемой страницы даты и цветовой страницы акций.
class ATL_NO_VTABLE CMyCtrl :
OtherInterfaces
public ISpecifyPropertyPagesImpl<CMyCtrl>
{
public:
BEGIN_COM_MAP(CMyCtrl)
OtherComMapEntries
COM_INTERFACE_ENTRY(ISpecifyPropertyPages)
END_COM_MAP()
BEGIN_PROP_MAP(CMyCtrl)
OtherPropMapEntries
PROP_PAGE(CLSID_DatePage)
PROP_PAGE(CLSID_StockColorPage)
END_PROP_MAP()
// Remainder of class declaration omitted.