如何在MFC对话框中导入位图,并且当鼠标点击图时以鼠标为中心进行缩放

怎么在MFC对话框中导入位图,并且当鼠标点击图时以鼠标为中心进行缩放?
以下代码是点击对话框上的导入按钮时导入jpg图片,但图片超过窗口大小时只能显示一部分,怎么才能全部显示啊 ?(按窗口大小显示) ,还有当鼠标点击图时以鼠标为中心进行放大和缩小啊?

哪位朋友有这方面的代码发下啊,急啊,谢谢了


void CLargeDlg::OnButtonLoad() 
{
// TODO: Add your control notification handler code here
// LoadPct("E:\T\Trouspy-MD 图片");
CDC *pDC = GetDC();
IPicture *pPic;  
IStream *pStm;  
   
CFileStatus fstatus; //CFileStatus文件属性类  
CFile file;  
LONG cb;  
   
//1 打开文件并获得文件的真实大小  
if (file.Open("E:\\095539_812_h.jpg",CFile::modeRead)  
&& file.GetStatus("E:\\095539_812_h.jpg", fstatus)  
&& ((cb = fstatus.m_size) != -1))  
{  
//2 从堆中分配指定数量字节的一整块,这时系统无法提供零零碎碎的局部或全局的堆  
HGLOBAL hGlobal = GlobalAlloc(GMEM_MOVEABLE, cb);  
LPVOID pvData = NULL;  
if (hGlobal != NULL)  
{  
//3 锁定全局内存对象并返回它的首地址  
if ((pvData = GlobalLock(hGlobal)) != NULL)  
{  
//4 把文件内容读进全局内存对象的地址空间中  
file.ReadHuge(pvData, cb);  
//5 GlobalUnlock函数把以GMEM_MOVEABLE方式分配的内存对象的锁定计数器减1  
GlobalUnlock(hGlobal);  
//6 从全局内存中创建stream对象,第二个参数指定当stream释放时是否自动释放全局内存  
CreateStreamOnHGlobal(hGlobal, TRUE, &pStm);  
//7 创建一个新的picture对象并用stream对象中的内容初始化  
if(SUCCEEDED(OleLoadPicture(pStm,fstatus.m_size,TRUE,IID_IPicture,(LPVOID*)&pPic)))  
{  
OLE_XSIZE_HIMETRIC hmWidth;  
OLE_YSIZE_HIMETRIC hmHeight;  
//8 得到picture对象中图片的宽和高  
pPic->get_Width(&hmWidth);  
pPic->get_Height(&hmHeight);  

double fX,fY;  
//9 GetDeviceCaps(HORZRES)得到屏幕的宽度(单位:像素)  
//GetDeviceCaps(HORZSIZE)得到屏幕的宽度(单位:毫米)  
fX = (double)pDC->GetDeviceCaps(HORZRES)*(double)hmWidth/  
((double)pDC->GetDeviceCaps(HORZSIZE)*100.0);  
fY = (double)pDC->GetDeviceCaps(VERTRES)*(double)hmHeight/  
((double)pDC->GetDeviceCaps(VERTSIZE)*100.0);  
//10 释放不要的stream对象并清空stream指针  
pStm->Release();  
pStm=NULL;  
//11 把图像显示在dc中  
if(FAILED(pPic->Render(*pDC/*pDC->GetSafeHdc()*/,100,50,(DWORD)fX,(DWORD)fY,0,hmHeight,hmHeight,-hmHeight,NULL)))  
AfxMessageBox("Failed To Render The picture!");  
//pDC->StretchBlt(0,0,1024,758,pDC,0,0,hmHeight,hmWidth,SRCCOPY);
// ::StretchDIBits(pDC,0,0,1024,758,0,0,1000,1000,SRCCOPY);
UpdateData(FALSE); 
m_i =1;
//pPic->St
// StretchBl();
pDC->SetBkMode(TRANSPARENT);  
pDC->TextOut(100,50,"这是一个JPG图像");  
//12 释放不要的picture对象,并把指针清空  
pPic->Release();  
pPic=NULL;  
//13 释放不要的全局内存对象,这个千万别忘了(32位程序不需要这行,系统会自动释放;16位程序一定要)  
FreeResource(hGlobal);  
}  
else  
{  
AfxMessageBox("Error Loading Picture From Stream!");  
}  
}  
}  
}  
else  
{  
AfxMessageBox("Can't Open Image File!");  
}  

}

------解决方案--------------------
StretchBlt()函数