ActiveX с нуля

Добавление пользовательского свойства цвета.


Для добавления свойства цвета фигуры в невыбранном состоянии выполните следующие действия.

1.

Выберите в меню View пункт ClassWizard.

2.      Выберите в открывшемся диалоге закладку Automation.

3.      В выпадающем списке Class Name выберите класс CMyCtrlCtrl (рис. 8).

4.      Щелкните кнопку Add Property. Появится диалог Add Property (рис. 9).

5.      Введите имя свойства SelectColor в поле External Name, установите тип свойства OLE_COLOR, выберите переключатель Get/Set methods для того, чтобы это свойство было доступным для управления из контейнера.

6.      Добавьте переменную типа OLE_COLOR в файл MyCtrlCtrl.h.

7.      Добавьте строку

            PX_Long(pPX, _T("SelectColor"), (long&) m_selectColor, RGB(255,0,0));

в функцию void CMyCtrlCtrl::DoPropExchange(CPropExchange* pPX):

void CMyCtrlCtrl::DoPropExchange(CPropExchange* pPX)

{



     ExchangeVersion(pPX, MAKELONG(_wVerMinor, _wVerMajor));

     COleControl::DoPropExchange(pPX);

     PX_Short(pPX, _T("Shape"), m_nShape, 0);

     PX_Long(pPX, _T("SelectColor"), (long&) m_selectColor, RGB(255,0,0));

}

8.      Внесите изменения в методы GetSelectColor() и SetSelectColor():

OLE_COLOR CMyCtrlCtrl::GetSelectColor()

{

     return m_selectColor;

}

void CMyCtrlCtrl::SetSelectColor(OLE_COLOR nNewValue)

{

     m_selectColor = nNewValue;

     SetModifiedFlag();

     InvalidateControl();

}



Содержание раздела