15,978
社区成员
发帖
与我相关
我的任务
分享
void Cbitmap::OnPaint()
{
CPaintDC dc(this); // device context for painting
// TODO: 在此处添加消息处理程序代码
// 不为绘图消息调用 CDialog::OnPaint()
CBitmap bitmap;
bitmap.LoadBitmapW(IDB_BITMAP1);
BITMAP bmpInfo;
bitmap.GetBitmap(&bmpInfo);
CDC comparableDC;
comparableDC.CreateCompatibleDC(&dc);
comparableDC.SelectObject(&bitmap);
CRect rect;
this->GetDlgItem(IDC_STATIC_MAP)->GetClientRect(&rect);
//ScreenToClient(&rect);
dc.StretchBlt(rect.left,rect.top,rect.Width(),rect.Height(), &comparableDC,0,0,bmpInfo.bmWidth,bmpInfo.bmHeight,SRCCOPY);
}
为什么得到的可以是窗口中,静态文本的的rect大小,但是坐标就不对了,IDC_STATIC_MAP是一个Group box,我想在这个Group box内显示一幅位图IDB_BITMAP1,但是每次显示都不在Group box内,都在窗口的0,0位置开始显示,大小是对的。