c++让图片在固定picture控件中自动缩放适应大小!已有代码在dialog上,如何放在picture控件中
我的情况如下:我有一张bmp位图,很大像素很宽。需要自适应我dialog的大小,自动缩小或者扩大放在dialog里面显示出来
这个自动缩小放大我已经做出来了。如下面代码。现在问题是要放到dialog中的picture控件中。不然整个dialog都被遮住了!请求各位大哥帮我看下下面代码,如何改动。picture控件id为:idd_picture.
我做的步骤如下。经测试,成功的。如何改动放到picrute中?
1 首先建立一个基于对话框的程序,在rc资源里面加入位图1:IDB_BITMAP1
2 其次在onpaint函数里面加入以下代码即可
经测试,可以显示位图,而且可以按照对话框的大小自动调节。但是我需要吧图片放到picture控件中,请各位大哥帮忙指点如何改动?
CBitmap bmp;
if (bmp.LoadBitmap(IDB_BITMAP1))
{
BITMAP bmpInfo;
bmp.GetBitmap(&bmpInfo);
CDC dcMemory;
CDC* pDC=GetWindowDC();
dcMemory.CreateCompatibleDC(pDC);
CBitmap* pOldBitmap = dcMemory.SelectObject(&bmp);
CRect rect;
GetClientRect(&rect);
int nX = rect.left + (rect.Width() - bmpInfo.bmWidth) / 2;
int nY = rect.top + (rect.Height() - bmpInfo.bmHeight) / 2;
pDC->BitBlt(nX, nY, bmpInfo.bmWidth, bmpInfo.bmHeight, &dcMemory,
0, 0, SRCCOPY);
dcMemory.SelectObject(pOldBitmap);
ReleaseDC(pDC);
}