CStatic DrawItem方法在创建子窗口后过于自由地调用

时间:2014-10-28 05:17:36

标签: visual-c++ graphics mfc dialog sdi

我有一个使用布局分割器的图像查看器应用程序窗口。 我正在使用自定义图像控件

在分割器内的对话框上绘制位图
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()方法中,我从lpDrawItemStruct获取GDI +图形并绘制图像。

一切正常,但当我打开一个子窗口到我控制的对话框时,图像会在我的弹出窗口上绘制。

有没有办法让弹出窗口显示在前面。

控件的完整来源可以在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 个答案:

没有答案