拉伸位图怎么做?
wkp 2001-05-06 07:05:00 各位:
在下用下面的算法来拉伸一张图片,可是在视图客户区里却会得到两张图片。
一张左顶点位于客户区(0,0)点,另一张位于(x,y)点:请问何解?
void CPView::showpicture(CString name,int mode)
{
CBitmap m_bitmap;
CDC *pDC=GetDC();
int x,y;
CRect rc;
GetClientRect(&rc);
HBITMAP hBitmap = (HBITMAP) LoadImage(NULL, _T(name), IMAGE_BITMAP,
0, 0, LR_CREATEDIBSECTION | LR_DEFAULTSIZE | LR_LOADFROMFILE);
m_bitmap.Attach(hBitmap);
CDC dcImage;
if (!dcImage.CreateCompatibleDC(pDC))
return;
BITMAP bm;
m_bitmap.GetBitmap(&bm);
// show the image.
CBitmap* pOldBitmap = dcImage.SelectObject(&m_bitmap);
x=(rc.right -bm.bmWidth)/2;
y=(rc.bottom -bm.bmHeight)/2;
pDC->StretchBlt(100, 100, bm.bmWidth, bm.bmHeight, &dcImage, 100, 100,bm.bmWidth*4,bm.bmHeight*4,SRCCOPY);
dcImage.SelectObject(pOldBitmap);
}