中处理它
我是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