Преимущество страниц базовых свойств заключается в их “интеллектуальности”. Они реализованы так, чтобы самостоятельно находить в библиотеке типов элемента управления информацию о свойствах интересующего их типа. Например, страница Colors ищет свойства с типом OLE_COLOR и автоматически предоставляет доступ к этим свойствам.
Единственный недостаток страниц базовых свойств заключается в том, что их реализацию нельзя изменить. Для этого нужно создавать полностью новую страницу.
Все остальные страницы свойств элемента управления являются пользовательскими. Они разрабатываются точно так же, как и любые диалоговые окна. Создание страниц свойств заключается в добавлении дочерних элементов управления к шаблону диалогового окна.
При проектировании следует помнить, что страницы свойств: не имеют заголовков; по умолчанию невидимы; не имеют границ; являются дочерними окнами. Следует убедиться, что соответствующие опции в редакторе ресурсов были установлены правильно.
Добавление страниц базовых свойств
Рассмотрим, как добавить в создаваемый элемент управления страницу базовых свойств Colors. Чтобы написать код, который добавляет базовую страницу свойств (Colors) к элементу управления, необходимо выполнить следующие инструкции: найти и модифицировать таблицу следующим образом:
BEGIN_PROPPAGEIDS(CNameCtrl, 2) PROPPAGEID(CNamePropPage::guid) PROPPAGEID(CLSID_CColorPropPage) END_PROPPAGEIDS(CNameCtrl)
Добавление и корректировка пользовательских страниц
Для создания новой пользовательской страницы необходимо создать диалоговую панель (отвечающую ранее перечисленным требованиям) и подключить к ней новый класс, реализующий ее работу.