看个程序,关于映射模式MM_HIMETRIC和内存设备环境双缓冲画图
void CSickLmsView::OnPaint()
{
CPaintDC dc(this); // device context for painting
CRect rect;
GetClientRect(&rect);
dc.SetMapMode(MM_HIMETRIC);
dc.SetViewportOrg(rect.Width()/2,rect.Height()/2);
// TODO: Add your message handler code here
OnDraw(&dc);
// Do not call CScrollView::OnPaint() for painting messages
}
void CSickLmsView::OnDraw(CDC* pDC)
{
CSickLmsDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
CRect rect;
GetClientRect(&rect);
CDC memDC;
memDC.CreateCompatibleDC(pDC);
int rcWidth=rect.right-rect.left;
int rcHeight=rect.bottom-rect.top;
CBitmap memBmp;
memBmp.CreateCompatibleBitmap(pDC,rcWidth,rcHeight);
CBitmap* pOldBmp=memDC.SelectObject(&memBmp);
memDC.FillSolidRect(0,0,rcWidth,rcHeight,RGB(0,0,0));
pDC->BitBlt(-rcWidth/2,rcHeight,rcWidth,rcHeight,&memDC,0,0,SRCCOPY);
memBmp.DeleteObject();
memDC.DeleteDC();
}
我要做一个程序需要画采集数据的曲线,单位是毫米,于是想到用MM_HIMETRIC映射模式,为了加快显示速度,采用双缓冲,利用内存设备环境,可按照上述程序设置后,怎么在 程序中画出来的黑色矩形很小啊,我估计是MM_HIMETRIC模式的问题,可怎么能选用这个模式且用双缓冲模式又可以使黑色矩形显示在整个客户区呢??不是和双缓冲画图中内存设备环境有关系吧
问题点数:20、回复次数:2Top
1 楼chinaren_shibo(皮皮狗)回复于 2005-08-03 09:33:34 得分 0
没有人来看看么Top
2 楼i_noname(晚九朝五)回复于 2005-08-15 20:23:15 得分 0
去掉MM_HIMETRIC方式看看,MM_HIMETRIC感觉太小哦Top




