如何可以用Draw函数把图像数据写入到一个内存DC设备里。我创建了一个MemoryDC和CBitmap的DC,并且把bitmap选入了Memory里面了但是怎么可以把CImage对象里的图象用Draw方法绘制到这个bitmap里VCCImageDraw图形

解决方案 »

  1.   

    给你一个内存DC的类,用这个类去画吧。
    class CMemDC : public CDC 
    {
    private:
    CBitmap* mpBitmap;
    CBitmap* mpOldBitmap;
    CDC* mpDC;
    CRect mrcBounds;
    public:
    CMemDC(CDC* apDC, const CRect& arcBounds) : CDC()
    {
    CreateCompatibleDC(apDC);
    mpBitmap = new CBitmap;
    mpBitmap->CreateCompatibleBitmap(apDC, arcBounds.Width() + arcBounds.left, arcBounds.Height() + arcBounds.top);
    mpOldBitmap = SelectObject(mpBitmap);
    mpDC = apDC;
    mrcBounds = arcBounds;
    }
    ~CMemDC() 
    {
    if(mpDC != NULL)
    {
    mpDC->BitBlt(mrcBounds.left, mrcBounds.top, mrcBounds.Width(), mrcBounds.Height(), 
    this, mrcBounds.left, mrcBounds.top, SRCCOPY);
    }
    SelectObject(mpOldBitmap);
    if (mpBitmap != NULL)
    {
    delete mpBitmap;
    mpBitmap = NULL;
    }
    }
    void SetDC(CDC* apDC)
    {
    mpDC = apDC;
    }
    CMemDC* operator->() 
    {
    return this;
    }
    };