MFC Picture control 控件显示图片

void COpticDisplayDlg::ShowLensPic(CString imgPath)
{
	int height, width;
	CRect rect;//定义矩形类
	CRect rect1;
	CImage image; //创建图片类	

	image.Load(imgPath);
	height = image.GetHeight();
	width = image.GetWidth();

	pic_display.GetClientRect(&rect); //获得pictrue控件所在的矩形区域
	CDC *pDc = pic_display.GetDC();//获得pictrue控件的Dc
	SetStretchBltMode(pDc->m_hDC, STRETCH_HALFTONE);

	if (width <= rect.Width() && height <= rect.Width()) //小图片,不缩放
	{
		rect1 = CRect(rect.TopLeft(), CSize(width, height));
		image.StretchBlt(pDc->m_hDC, rect1, SRCCOPY); //将图片画到Picture控件表示的矩形区域
		//return TRUE;
	}
	else
	{
		float xScale = (float)rect.Width() / (float)width;
		float yScale = (float)rect.Height() / (float)height;
		float ScaleIndex = (xScale >= yScale) ? xScale : yScale;
		rect1 = CRect(rect.TopLeft(), CSize((int)width*ScaleIndex, (int)height*ScaleIndex));
		image.StretchBlt(pDc->m_hDC, rect1, SRCCOPY); //将图片画到Picture控件表示的矩形区域
	}
	ReleaseDC(pDc);//释放picture控件的Dc 
}	

你可能感兴趣的:(MFC)