void CMYAPP2View::OnInitialUpdate()
{
memDC.DeleteDC();
memBmp.DeleteObject();
CDC *pDC = GetDC();
OnPrepareDC(pDC);
memDC.CreateCompatibleDC(pDC);
OnPrepareDC(&memDC);
memBmp.CreateCompatibleBitmap(pDC,1000,1000);
memDC.SelectObject(memBmp);
pDC->SetBkColor(RGB(255,255,255));
memDC.SetBkColor(RGB(255,255,255));
memDC.FillSolidRect(-500,-500,1000,1000,RGB(255,255,255));
SetTimer(ID_MYTIMER,30,NULL);
CView::OnInitialUpdate();
// TODO: Add your specialized code here and/or call the base class
}
void CMYAPP2View::OnDraw(CDC* pDC)
{
CMYAPP2Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
CRect ClientRect;
GetClientRect(&ClientRect);
memDC.SelectObject(&memBmp);
CPen myPen;
myPen.CreatePen(PS_SOLID,0.5,RGB(255,0,0));
memDC.SelectObject(myPen);
memDC.MoveTo(CPoint(x1,y1));
memDC.LineTo(x,y);
memDC.SelectStockObject(BLACK_PEN);
pDC->BitBlt(-500,-500,1000,1000,&memDC,-500,-500,SRCCOPY);
myPen.DeleteObject();
// TODO: 在此处为本机数据添加绘制代码
}
5 个解决方案
#1
位图放大后必然失真,没什么好的办法
要想不失真就要保存原图的矢量信息,如直线的两端点,圆心/半径等等,在显示时对矢量信息进行缩放后重现
要想不失真就要保存原图的矢量信息,如直线的两端点,圆心/半径等等,在显示时对矢量信息进行缩放后重现
#2
那能不能在放大后位图和设备环境的结构已经改变但还没有开始重画的时候保存原位图,在重画后再覆盖回去呢?
#3
image zoom out, it must be distorted.If you want to the image show without distortion, u can view it with advanced CRT
#4
绘矢量图
#5
谢谢以上各位了.
#1
位图放大后必然失真,没什么好的办法
要想不失真就要保存原图的矢量信息,如直线的两端点,圆心/半径等等,在显示时对矢量信息进行缩放后重现
要想不失真就要保存原图的矢量信息,如直线的两端点,圆心/半径等等,在显示时对矢量信息进行缩放后重现
#2
那能不能在放大后位图和设备环境的结构已经改变但还没有开始重画的时候保存原位图,在重画后再覆盖回去呢?
#3
image zoom out, it must be distorted.If you want to the image show without distortion, u can view it with advanced CRT
#4
绘矢量图
#5
谢谢以上各位了.