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