VC里怎么改变客户区窗口大小?

来源:百度知道 编辑:UC知道 时间:2024/06/21 01:36:41
我建了个单文档程序,想从电脑上动态读入任意位图,但是位图读入后,老是不是太大就是太小,怎么设置让图读入时客户区能根据其大小自动调节大小?设置窗口大小的函数是什么?怎么用??
我的英文很差的...那上面术语太多,看不懂,能不能举个简单的例子....

晕,我是想客户区的大小是根据图像来调节的,而不是图像根据窗口大小来调节自己.....

首先通过类项导添加一个虚函数OnEraseBkgnd(CDC* pDC)
然后添加如下代码:
CDC dcComp;
dcComp.CreateCompatibleDC(pDC);

CBitmap bmp;
bmp.LoadBitmap(IDB_BITMAP1);

CRect rc;
GetClientRect(&rc);
BITMAP bitmap;
bmp.GetBitmap(&bitmap);

CBitmap *pOldbmp = dcComp.SelectObject(&bmp);
pDC->BitBlt(0,0,bitmap.bmWidth,bitmap.bmHeight,&dcComp,0,0,SRCCOPY);

// pDC->StretchBlt(0,0,rc.Width(),rc.Height(),&dcComp,0,0,bitmap.bmWidth,bitmap.bmHeight,SRCCOPY);
dcComp.SelectObject(pOldbmp);
return TRUE;
// return CView::OnEraseBkgnd(pDC);
注:pDC->BitBlt(...)不压缩图片---窗口比图片小则显示图片的一部分
pDC->StretchBlt(...)压缩图片---窗口多大图片就多大(但图片的显示质量不太好)

==================================================
那你就
BITMAP bitmap;
bmp.GetBitmap(&bitmap);
得到图片的大小后再SetWindoPos(...)设置窗口大小呗

api函数为 SetWindowPos

你可以查查MSDN