缩放位图图像从中心在mfc



我是MFC新手。如何从中心缩放位图图像。在我的代码图像是从左上角缩放。但图像应该从滚动条的中心缩放…

void CRightUp::ImageDraw(int sHeight,int sWidth){
    CDC *screenDC = GetDC();
    CDC mDC;
    mDC.CreateCompatibleDC(screenDC);
    CBitmap bitmap;
    bitmap.CreateCompatibleBitmap(screenDC, sWidth, sHeight);
    CBitmap *pob = mDC.SelectObject(&bitmap);
    mDC.SetStretchBltMode(HALFTONE);
    m_img.StretchBlt(mDC.m_hDC, 0, 0, sWidth, sHeight, 0, 0,   m_img.GetWidth(), m_img.GetHeight(), SRCCOPY);
    mDC.SelectObject(pob);
    m_logoImage.SetBitmap((HBITMAP)bitmap.Detach());
    ReleaseDC(screenDC);}

为什么要使用m_logoImage:

void CRightUp::ImageDraw(int sHeight,int sWidth){
    RECT r;
    GetClientRect(&r);
    CDC *screenDC = GetDC();
    m_img.StretchBlt(screenDC->m_hDC, ((r.right-r.left)-sWidth)/2, 
         ((r.bottom-r.top)-sHeight)/2, 
         sWidth, sHeight, 0, 0,  
         m_img.GetWidth(), m_img.GetHeight(), SRCCOPY);
    ReleaseDC(screenDC);
}

这将只是暂时绘制它。如果您快速调用ImageDraw(例如,每1/10秒或更长时间),在完全缩放之前应该没有问题。这时,你可以在CStatic或OnPaint或OnEraseBackground

中处理它

相关内容

  • 没有找到相关文章

最新更新