首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

兼容dc转换有关问题

2012-04-16 
兼容dc转换问题我要画一张图,但是图的坐标很大,图有一个外接矩形,在OnPrepareDC()用SetViewportOrg()、SetW

兼容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); //为什么调用这一句?
外接矩形?指什么?

热点排行