Метод CStatic DrawItem вызывается слишком часто после создания дочернего окна

У меня есть окно приложения просмотра изображений с использованием раскладчиков макета. Я рисую растровое изображение в диалоге внутри разделителя, используя пользовательский элемент управления изображением

class CPictureCtrl :
    public CStatic
{
public:


    .
    .

protected:
    virtual void PreSubclassWindow();

    //Draws the Control
    virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
    virtual BOOL OnEraseBkgnd(CDC* pDC);

private:

    //Internal image stream buffer
    IStream* m_pStream;

    //Control flag if a pic is loaded
    BOOL m_bIsPicLoaded;

    //GDI Plus Token
    ULONG_PTR m_gdiplusToken;
};

Внутри метода DrawItem() я беру графику GDI+ из lpDrawItemStruct и рисую изображение.

Все работает нормально, но когда я открываю дочернее окно для диалога, где у меня есть этот элемент управления, изображение закрашивается поверх моего всплывающего окна.

Есть ли способ вывести всплывающее окно на передний план?

Полный источник элемента управления можно найти по адресу http://www.codeproject.com/Articles/24969/An-MFC-picture-control-to-dynamically-show-picture?fid=1183733&df=90&mpp=25&noise=1&prof=True&sort=Position&view=Expanded&spc=Relaxed&fr=1

0 ответов

Другие вопросы по тегам