关于MFC GDI绘图坐标系的问题
这里有两个函数,初始化Initialize()和绘图OnPaint()
void CStaticAScan::Initialize()
{
m_pDC = this->GetDC();
this->GetClientRect(&m_rect);
m_pOldBmp = NULL;
//创建内存绘图设备
m_pDC->SetMapMode(MM_ANISOTROPIC);
m_pDC->SetWindowExt(CSize(1000,1000));
m_pDC->SetViewportExt(m_rect.right,-m_rect.bottom);
m_pDC->SetViewportOrg(m_rect.right/2,m_rect.bottom/2);
m_memDC.CreateCompatibleDC(m_pDC);
m_memBitmap.CreateCompatibleBitmap(m_pDC, m_rect.right, m_rect.bottom);
m_pOldBmp = m_memDC.SelectObject(&m_memBitmap);
m_memDC.BitBlt(m_rect.left,
m_rect.top,
m_rect.right,
m_rect.bottom,
m_pDC,
0, 0, SRCCOPY
);
}
void CStaticAScan::OnPaint()
{
m_memDC.FillSolidRect(-500, 500, 1000, 1000, RGB(0, 0, 0));//背景
m_memDC.Ellipse(-500,-500,500,500);
//把内存绘图拷贝到屏幕
m_pDC->BitBlt(m_rect.left,
m_rect.top,
m_rect.right,
m_rect.bottom,
&m_memDC,
0, 0, SRCCOPY
); //这里拷贝后得不到完整的图形,不知道为什么?
/*
CPaintDC dc(this); // device context for painting
dc.SetMapMode(MM_ANISOTROPIC);
dc.SetWindowExt(CSize(1000,1000));
dc.SetViewportExt(m_rect.right,-m_rect.bottom);
dc.SetViewportOrg(m_rect.right/2,m_rect.bottom/2);
dc.Ellipse(-500,-500,500,500); //这里可以得到完整的图形
*/
}
//哪位对绘图熟悉的高手解答一下,小弟先谢过了