ActiveX с нуля


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


            DISP_PROPERTY_EX(CMyCtrlCtrl, "Shape", GetShape, SetShape, VT_I2)

            DISP_PROPERTY_EX(CMyCtrlCtrl, "Selected", GetSelected, SetNotSupported, VT_BOOL)

            //}}AFX_DISPATCH_MAP

            DISP_FUNCTION_ID(CMyCtrlCtrl, "AboutBox", DISPID_ABOUTBOX, AboutBox, VT_EMPTY, VTS_NONE)

END_DISPATCH_MAP()

Каждое добавленное свойство приводит к появлению нового макроса DISP_PROPERTY_EX в карте диспетчеризации.


Для отражения состояния выбора и формы элемента управления необходимо к объявлению его класса вручную добавить переменные. В файл MyCtrlCtrl.h добавьте объявления:

BOOL m_bSelected;

short m_nShape;

Эти переменные надо инициализировать разумными значениями в конструкторе класса CMyCtrlCtrl:

            m_bSelected = FALSE;

            m_nShape = 0;

А теперь изменим добавленные мастером функции Get/Set:

short CMyCtrlCtrl::GetShape()

{

     return m_nShape;

}

 

void CMyCtrlCtrl::SetShape(short nNewValue)

{

     m_nShape = nNewValue;

     SetModifiedFlag();

     InvalidateControl();

}

 

BOOL CMyCtrlCtrl::GetSelected()

{

     return m_bSelected;

}

 




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