VS2010 MFC CDC <坐标系+做图>

来源:互联网 发布:数据录入员工资 编辑:程序博客网 时间:2024/06/04 00:46

我不多说,直接贴上代码,里面注释很详细!!!

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;//释放内存


原创粉丝点击