ActiveX с нуля


Добавление свойств пользователя к элементу управления.


К элементу 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)




- Начало -  - Назад -  - Вперед -