请教picture控件中图像的缩放(StretchBlt)
- C/C++ code
void CStretchImageDlg::OnStretchImage(){ CRect r; m_picture.GetClientRect(&r);//m_picture为picture控件对应变量(control) CDC* pDC = m_picture.GetDC(); //填充背景 pDC->FillRect(&r,NULL); //将位图选进设备场景中 CBitmap cbmp; cbmp.LoadBitmap(IDB_BITMAP1); CDC memdc; memdc.CreateCompatibleDC(pDC); memdc.SelectObject(&cbmp); BITMAP bmp; //获得位图参数 long width,height; cbmp.GetBitmap(&bmp); width = bmp.bmWidth; height = bmp.bmHeight; //缩放位图为原来的50% pDC->StretchBlt(r.left,r.top,(int)(width*0.5),(int)(height*0.5), &memdc,0,0,bmp.bmWidth,bmp.bmHeight,SRCCOPY);}以上代码实现的是对资源中的bmp图像(IDB_BITMAP1)进行50%的缩放,现在我有一个图片是c:\\11.bmp,我想在picture控件中进行50%的比例显示出来,应该怎么办?
我这样:
HBITMAP hBitmap;
CString sFile = _T("c:\\image.bmp");
hBitmap = (HBITMAP)LoadImage( GetModuleHandle(NULL),(LPCTSTR)sFile, IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION);
CBitmap cbmp;
cbmp.Attach(hBitmap);
但是报错,怎么办??急,没什么分了,对不起大家了 麻烦了~~~~~~~~~~~~
[解决办法]
报什么错啊,贴出来。