Изменения, которые Вы должны внести в проект.
В методе 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);
Перестройте проект и посмотрите, что получится. В странице свойств кнопка Обзор позволит выбрать для отображения любую картинку. Кнопка Очистить уберет картинку.