读书人

兼容dc转换有关问题

发布时间: 2012-04-16 16:20:04 作者: rapoo

兼容dc转换问题
我要画一张图,但是图的坐标很大,图有一个外接矩形,在OnPrepareDC()用SetViewportOrg()、SetWindowOrg()等函数转换,转换后能画出图形。但是想用兼容DC保存,
if(!m_dcCompatible.m_hDC)
{
m_dcCompatible.CreateCompatibleDC(&dc);//创建兼容DC
CRect myrect;
GetClientRect(&myrect);
OnPrepareDC(&m_dcCompatible);
//是否应该对兼容DC进行视口与窗口的转换?

CBitmap bitmap;
bitmap.CreateCompatibleBitmap(&dc,myrect.Width(),myrect.Height());
//创建位图时的大小是跟客户区大小一致,还是跟外接矩形一致,我认为是客户区,可是Bitblt用
的是逻辑坐标。
m_dcCompatible.SelectObject(&bitmap);
m_dcCompatible.BitBlt(rect.left,rect.bottom,rect.Width(),rect.Height(),&dc,rect.left,rect.bottom,SRCCOPY);
m_dcCompatible.SelectObject(pBrush);
//MSDN上Bitblt函数的几个参数都是逻辑坐标,可我无论用逻辑坐标还是用位图大小都没能将图拷贝过

}


问题在代码中,求各位大虾指点。我已经纠结一天了。

[解决办法]
StretchBlt用这个函数
[解决办法]
那两个bottom肯定不对吧?
OnPrepareDC(&m_dcCompatible); //为什么调用这一句?
外接矩形?指什么?

读书人网 >VC/MFC

热点推荐