ActiveX с нуля

         

Изменения, которые Вы должны внести в проект.


В методе OnResetState, принадлежащем Вашему элементу, добавьте вызов после строки COleControl::OnResetState:

m_pic.CreateEmpty();

Этот вызов задает пустую картинку в элемент контроля.

Для отрисовки картинки вызовите CPictureHolder::Render

в методе OnDraw. Посмотрите пример кода ниже:

void CMyCtrlCtrl::OnDraw(

    CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid)

{

// ****** Добавьте пожобный код ********** //

   m_pic.Render(pdc, rcBounds, rcBounds);

}

В метод GetControlPicture

добавьте строку:

return m_pic.GetPictureDispatch();

В метод SetControlPicture

добавьте строки:

m_pic.SetPictureDispatch(newValue);

InvalidateControl();

Добавьте строку в метод DoPropExchange:

PX_Picture(pPX, "ControlPicture",m_pic);

Перестройте проект и посмотрите, что получится. В странице свойств кнопка Обзор позволит выбрать для отображения любую картинку. Кнопка Очистить уберет картинку.



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