К элементу ActiveX можно добавить свойства двух видов: базовые и пользовательские. Базовые свойства уже предусмотрены в базовом классе COleControl.
Добавим к элементу управления два пользовательских свойства: Shape – вид отображаемой в элементе фигуры, Selected – определяет состояние элемента ( включен/выключен).
Для добавления свойства Shape необходимо выполнить следующие действия:
1.
Выберите в меню View пункт ClassWizard.
2. Выберите в открывшемся диалоге закладку Automation.
3. В выпадающем списке Class Name выберите класс CmyCtrlCtrl (рис. 8).
4. Щелкните кнопку Add Property. Появится диалог Add Property (рис. 9).
5. Введите имя свойства Shape в поле External Name, установите тип свойства short, выберите переключатель Get/Set methods для того, чтобы это свойство было доступным для управления из контейнера.
6.
![]() |
Для добавления свойства Selected надо выполнить почти аналогичные действия. Отличия заключаются в том, что тип свойства – BOOL, и в том, что сделаем это свойство недоступным для изменения извне, то есть уберем метод set. Для отмены метода set просто удалите имя функции set в поле Set function. Тогда свойство становится доступным только для чтения.
7. При выходе из окна мастера ClassWizard c помощью щелчков на кнопках OK генерируются три новые функции в классе элемента управления:
short CMCtrlCtrl::GetShape();
void CMCtrlCtrl::SetShape(short nNewValue);
BOOL CMCtrlCtrl::GetSelected();
Обратите внимание на изменение текста в файле CMyCtrlCtrl.cpp. В карте диспетчеризации (если Вы не знаете, что это такое, не пугайтесь – после общего знакомства с процессом создания элемента ActiveX мы рассмотрим тексты файлов более подробно) появились дополнительные строчки:
BEGIN_DISPATCH_MAP(CMyCtrlCtrl, COleControl)
//{{AFX_DISPATCH_MAP(CMyCtrlCtrl)