19,464
社区成员
发帖
与我相关
我的任务
分享for(int i = 0; i< Nm; i ++ )
{
pDC->Ellipse( pt[i].x-1, pt[i].y-1, pt[i].x+1, pt[i].y+1 );//半径为1的圆
}void C**Dlg::OnTimer(UINT_PTR nIDEvent)
{
Nm++;
//-----------------更新控件显示信息-----将Edit设定为MultiLine-------------------
CString NwTx;
NwTx.Format("第%d点 X坐标:%d,Y坐标:%d",Nm,pt[Nm-1].x,pt[Nm-1].y ); //新点信息
CString strTemp;
GetDlgItemText( EditID, strTemp ); //以前点信息
NwTx += "\r\n";
NwTx += strTemp; //相加
SetDlgItemText( EditID, NwTx ); //重新设定Edit内容
//-----------------内存绘图-----------------------------------------------------------
CDC *pdc=this->GetDC();
CDC MenDC;
CBitmap bm;
CRect rt;
GetClientRect(&rt);
MenDC.CreateCompatibleDC(pdc);
bm.CreateCompatibleBitmap(pdc,rt.Width(),rt.Height());
MenDC.SelectObject(&bm);
//-------------------------------------------------------------------
MenDC.FillSolidRect(0,0,rt.Width(),rt.Height(),RGB(255,255,255)); //用白色清屏
for(int i = 0; i< Nm; i ++ )
{
MenDC.Ellipse( pt[i].x-1, pt[i].y-1, pt[i].x+1, pt[i].y+1 ); //用内存DC绘图
}
//-------------------------------------------------------------------
pdc->BitBlt(0,0,rt.Width(),rt.Height(),&MenDC,0,0,SRCCOPY); //贴回屏幕DC
MenDC.DeleteDC();
bm.DeleteObject();
ReleaseDC(pdc);
//-------------------------------------------------------------------------------------------
CDialog::OnTimer(nIDEvent);
}