我不多说,直接贴上代码,里面注释很详细!!!
CRect rect; m_xoy.GetClientRect(rect);//注册对象:这里的对象我用的是Picture 控件,你也可以直接再Dialog下画 int x0 = rect.Width();//获取对象宽度 int y0 = rect.Height();//获取对象高度 CDC *pDC; pDC=m_xoy.GetDC();//获取对象控件 pDC->SetViewportOrg(10,y0);//定位原点<0,0> CString sTmp; pDC->SetTextColor(0xFF0000);//设置字体颜色 /* 调整TextOut输出的字体 */ CFont font; font.CreateFont(12, 4, 0, 0, FW_SEMIBOLD, FALSE, FALSE, FALSE, 0, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_ROMAN, _T("楷体")); CFont *pOldFont=pDC->SelectObject(&font); // 然后接着用TextOut输出就行了,输出后一定要释放。再加上下面这句,搞定了。 CPen* pPenRed = new CPen;//创建画笔对象 pPenRed->CreatePen(PS_SOLID, 1, RGB(255,0,0)); //红色画笔 pDC->SelectObject(pPenRed);//选用该画笔 /*标注*/ pDC->TextOut(0,0,_T("<0,0>")); pDC->TextOut(0,-500,_T("<0,-500>")); pDC->TextOut(500,0,_T("<500,0>")); /*画坐标系包括箭头*/ pDC->MoveTo(0,-500);pDC->LineTo(0-5,-500+10); pDC->MoveTo(0,-500);pDC->LineTo(0+5,-500+10); pDC->MoveTo(0,-500);pDC->LineTo(0,0);pDC->LineTo(500,0); pDC->MoveTo(500,0);pDC->LineTo(500-10,0+5); pDC->MoveTo(500,0);pDC->LineTo(500-10,0-5); /*eg: 做 y= x^2图*/ int i = 0; pDC->MoveTo(0,0); for(i=0; i<100; i++) { pDC->LineTo(i,-i*i); } DeleteObject(font);//释放资源 delete pPenRed;//释放内存