有哪位大神帮忙用VC画直角坐标系,求源代码!!

解决方案 »

  1.   

    VC画直角坐标系-----------------就是画两条线
    moveto
    lineto
      

  2.   

    CWnd *pWnd   =  CWnd::FromHandle(GetSafeHwnd());          
    CString str;      //强制更新绘图, 不可少, 否则绘图会出错       
    //pWnd->Invalidate(); //使static控件的区域无效       
    //pWnd->UpdateWindow();//更新窗口, 此时才真正向系统发送重绘消息       
    CDC *pDC = pWnd->GetDC(); //获取控件的CDC指针       
    pDC->Rectangle(0, 390, 700, 0); //画一个矩形框       
    CPen *pPenRed = new CPen(); //创建画笔对象       
    pPenRed ->CreatePen(PS_SOLID, 1, RGB(128, 128, 128)); //黑色画笔       
    CPen *pPen = NULL;    //选中当前红色画笔,并保存以前的画笔       
    CGdiObject *pOldPen = pDC ->SelectObject(pPenRed);      
    pDC ->MoveTo(20, 20); //绘制坐标轴       
    pDC ->LineTo(20, 360); //竖起轴       
    pDC ->LineTo(690, 360); //水平轴       
    //写X轴刻度值       
    for(int i = 0; i <= 25; i ++)      
    {         
    str.Format(_T("%d"), i);         
    pDC ->TextOut(17 + 25 * i, 365, str);         
    //绘制X轴刻度          
    pDC ->MoveTo(i * 25 + 20, 360);         
    pDC ->LineTo(i * 25 + 20, 355);      
    }      
    pDC ->TextOut(680,365,_T("t/s"));      
    //写Y轴刻度值       
    for(int i = 1; i <= 10; i ++)      
    {         
    str.Format(_T("%d"), i);         
    pDC ->TextOut(2, 360 - 30 * i - 5, str);         
    //绘制Y轴刻度          
    pDC ->MoveTo(25, 360 - 30 * i);         
    pDC ->LineTo(20, 360 - 30 * i);        
    }      
    //绘制X箭头       
    pDC ->MoveTo(680, 357);      
    pDC ->LineTo(690, 360);     
    pDC ->LineTo(680, 363);      
    //绘制Y箭头        
    pDC ->MoveTo(17, 30);      
    pDC ->LineTo(20, 20); //绘制左边箭头       
    pDC ->LineTo(23, 30); //绘制右边箭头         
    pDC ->SelectObject(pOldPen);//恢复以前的画笔            
    delete pPenRed;      
    if(pPen != NULL)      
    delete pPen;      
    ReleaseDC(pDC); 
      

  3.   

    基本上moveto和lineto就能搞定所有的,另外对应的Pen颜色可以自己设置下。