图像显示问题

来源:百度知道 编辑:UC知道 时间:2024/06/17 19:27:14
我想在窗口中显示一幅比窗口大的图像,但总是只显示了一部分,怎么办呢?

vc,C#都可

BOOL OnEraseBackgnd(CDC *pDC)
{
CRect rtClient;
GetClientRect(&rtClient);
CBitmap bmPhoto;
bmPhoto.LoadBitmap(IDB_PHOTO);//IDB_PHOTO:加到资源的图片ID
CDC memDC;
memDC.CreateCompatibleDC(pDC);
CBitmap *pOldBmp = memDC.SelectObject(&bmPhoto);
pDC->StretchBlt(0,0,rtClient.Width(),rtClient.Height(),&memDC,0,0,SRCCOPY);
memDC.SelectObject(pOldBmp );
memDC.DeleteDC();
bmPhoto.DeleteObject();
return TRUE;
}
//抄我写好的例子吧,只要你经常用到,就算是空手都写得出来了.

vc中的StretchBlt即可实现缩放功能

CDC::StretchBlt

BOOL StretchBlt(
int x,
int y,
int nWidth,
int nHeight,
CDC* pSrcDC,
intxSrc,
int ySrc,
int nSrcWidth,
int nSrcHeight,
DWORD dwRop
)

返回值:如果位图已经绘制,则返回非零值,否则为0。

参数: x 目标矩形左上角的X逻辑坐标。
y 目标矩形左上角的Y逻辑坐标。
nWidth 目标矩形的宽度(逻辑单位)。
nHeight 目标矩形的高度(逻辑单位)。
pSrcDC 指定源设备上下文。