标题:请问怎么用VC++编个坐标轴啊,在界面上显示
只看楼主
rockee123
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2007-4-26
 问题点数:0 回复次数:7 
请问怎么用VC++编个坐标轴啊,在界面上显示
谁能告诉我吗
搜索更多相关主题的帖子: 坐标轴 界面 
2007-04-26 20:58
小琪
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-4-26
得分:0 

会了教教我

2007-04-26 22:38
bill8888
Rank: 1
等 级:新手上路
帖 子:97
专家分:0
注 册:2007-3-10
得分:0 

呵呵
想学习


2007-04-27 12:37
余来
Rank: 6Rank: 6
等 级:贵宾
威 望:26
帖 子:956
专家分:18
注 册:2006-8-13
得分:0 

在OnPaint里面画出来算了,好象VC没自带这样的控件


2007-04-27 12:40
cz522321
Rank: 1
等 级:禁止访问
威 望:2
帖 子:569
专家分:5
注 册:2006-3-13
得分:0 
利用MoveTo和LineTo画出坐标轴,然后利用TextOut在相应的坐标位置输出相应的坐标数值就行了.

2007-04-29 22:34
wangbinxsh
Rank: 2
等 级:论坛游民
帖 子:16
专家分:14
注 册:2010-3-28
得分:0 
回复 楼主 rockee123
你可以 试试  TEECHART 控件! 祝你好运!
2010-04-18 15:02
d0113150746
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2010-6-21
得分:0 
void CWorkView::OnDraw(CDC* pDC)
{
    // TODO: Add your specialized code here and/or call the base class
    CRect rect;
    GetClientRect(&rect);
    pDC->SetMapMode(MM_ANISOTROPIC);
    pDC->SetViewportOrg(rect.right-685,rect.bottom-575);
    pDC->SetViewportExt(rect.right-200,rect.bottom);
    pDC->SetWindowOrg(0,0);
    pDC->SetWindowExt(1000,1000);   

         CString str;
         pDC->Rectangle(0,0,rect.right-185,rect.bottom+25);//画一个矩形
         CPen *pPenRed=new CPen(); //创建画笔对象
         pPenRed->CreatePen(PS_SOLID,1,RGB(255,0,0));//红色画笔
         CPen *pPen=NULL;
         CGdiObject *pOldPen=pDC->SelectObject(pPenRed);//保存当前红色画笔

         
         pDC->MoveTo(20,20);//绘制坐标轴
         pDC->LineTo(20,rect.bottom-20);//Y
         pDC->LineTo(815,rect.bottom-20);//x
//绘制x轴刻度
         for(int i=0;i<17;i++)  //绘制最高刻度
         {
           str.Format("%d",i*128);
           pDC->TextOut(30+48*i,rect.bottom,str);//控制间距

           //绘制想x轴刻度
           pDC->MoveTo(45+48*i,rect.bottom);
           pDC->LineTo(45+48*i,rect.bottom-20);
         }

         for(i=0;i<33;i++)  //绘制中间刻度
         {
           //绘制想x轴刻度
           pDC->MoveTo(45+24*i,rect.bottom-5);
           pDC->LineTo(45+24*i,rect.bottom-20);
         }

         for(i=0;i<128;i++)  //绘制最低刻度
         {
           //绘制想x轴刻度
           pDC->MoveTo(45+6*i,rect.bottom-10);
           pDC->LineTo(45+6*i,rect.bottom-20);
         }

//绘制y轴刻度
         for(i=1;i<=7;i++)
         {
             str.Format("%d",i);
             pDC->TextOut(2,rect.left+740-100*i,str);  //标度
             //绘制Y轴刻度
             pDC->MoveTo(20,rect.left+740-100*i);
             pDC->LineTo(35,rect.left+740-100*i);
         }

         for(i=2;i<=13;i++)
         {
             //绘制Y轴刻度
             pDC->MoveTo(20,rect.left+740-50*i);
             pDC->LineTo(30,rect.left+740-50*i);
         }

         for(i=10;i<70;i++)
         {
             //绘制Y轴刻度
             pDC->MoveTo(20,rect.left+740-10*i);
             pDC->LineTo(25,rect.left+740-10*i);
         }

}这个给你看看  直接可以用的。
2010-06-21 10:00
喜鹊王子
Rank: 1
等 级:新手上路
帖 子:105
专家分:0
注 册:2012-12-25
得分:0 
回复 7楼 d0113150746
这样画的话,只要窗口被覆盖或者调整大小,画的这些线就会立马消失吧?

路漫漫其修远兮,吾将上下而求索。
2013-01-17 13:26



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-135232-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.093900 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved