怎么用vc6.0画图

怎么用vc6.0画图,第1张

实现一个简单绘图。

#include <graphics.h> /* 绘图库头文件,绘图语句需要*/

#include <conio.h> /* 控制台输入输出头文件,getch()语句需要*/

void main() { initgraph(640, 480) /* 初始化640x480的绘图屏幕*/

line(200, 240, 440, 240)/* 画线(200,240) - (440,240) */

line(320, 120, 320, 360)/* 画线(320,120) - (320,360) */

getch() /* 按任意键*/

closegraph() /* 关闭绘图屏幕*/

说明:

1. 创建的绘图屏幕640x480,表示横向有640个点,纵向有480个点。注意:左上角是原点(0,0),也就是说,y轴和数学的y轴是相反的。

2. getch实现按任意键功能,按任意键后,程序继续执行。否则,程序会立刻执行closegraph以至于看不到绘制的内容。

我是用MFC的

首先在VIEW,H里面定义变量

CPoint startpoint

然后初始化为o

在鼠标单击事后记录点

void CimagepaintView::OnLButtonDown(UINT nFlags, CPoint point)

{

// TODO: 在此添加消息处理程序代码和/或调用默认值

startpoint=point

CView::OnLButtonDown(nFlags, point)

}

在松开鼠标时

void CimagepaintView::OnLButtonUp(UINT nFlags, CPoint point)

{

// TODO: 在此添加消息处理程序代码和/或调用默认值

//topoint=point

CClientDC dc(this)

CPen pen

dc.SelectObject(&pen)

dc.SelectObject(&brush)

dc.MoveTo(startpoint)

dc.LineTo(point)

CView::OnLButtonUp(nFlags, point)

}

这样就可以了。画什么都可以。

或者卸载ONDRAW里面也行

这是我写的部分代码。。

给你做个例子(点击菜单,d出对话框,在对话框中输入坐标,确定后在视图中显示在坐标平面上)看符不符合你的要求

1.新建项目名为Coordinate的文档应用程序

2.插入新的对话框模板。Insert|Resource插入一个新的对话框模板。

3.在对话框板上添加控件。主要有编辑框控件两个,用来接收输入的坐标数据。

4.打开ClassWizard,利用该对话框资源创建一个对话框类CCoor。

5.添加与编辑控件关联的成员变量。两个编辑框对应的分别为m_x,m_y,校验规则均为-100~100。

6.在CCoordinateView中添加int成员变量m_vx,m_vy,用来在视图中接受并存储对话框类的成员变量m_x,m_y的值。并在构造函数中初始化为0。

7.使用菜单编辑器增加“坐标”主菜单,并在其中添加“输入坐标”菜单项,ID为ID_COORDINATE。

8.为ID_COORDINATE菜单项添加COMMAND消息的处理函数:

void CCoordinateView::OnCoordinate()

{

CCoor dlg

if(dlg.DoModal()==IDOK)

{

m_vx=dlg.m_x

m_vy=dlg.m_y

Invalidate()

}

}

9.为CCoordinate添加三个成员函数:

//绘制直线

void CCoordinateView::drawline(CDC *pDC, int x1, int y1, int x2, int y2)

{

pDC->MoveTo(x1,y1)

pDC->LineTo(x2,y2)

}

//绘制坐标

void CCoordinateView::drawaxis(CDC *pDC)

{

CString str

CFont myfont,*oldfont

myfont.CreatePointFont(80,"Arial",pDC)

oldfont=pDC->SelectObject(&myfont)

drawline(pDC,310,10,310,610)

drawline(pDC,10,310,610,310)

for(int i=0i<21i++)

{

drawline(pDC,10+30*i,308,10+30*i,310)

str.Format("%d",-100+10*i)

if(i!=10)pDC->TextOut(10+30*i,315,str)

else pDC->TextOut(12+30*i,315,"0")

}

for(i=0i<21i++)

{

drawline(pDC,308,10+30*i,310,10+30*i)

str.Format("%d",100-10*i)

if(i!=10)pDC->TextOut(315,10+30*i,str)

}

pDC->SelectObject(oldfont)

myfont.DeleteObject()

}

//在坐标平面上标出坐标

void CCoordinateView::drawcoordinate(CDC *pDC)

{

drawaxis(pDC)

pDC->SetPixel(CPoint(310+m_vx*3,310-m_vy*3),RGB(255,0,0))

}

10.在成员函数CCoordinateView::OnDraw()中添加:

drawcoordinate(pDC)

11.在CCoordinateView.cpp的所有include语名之后,加入:

#include "Coor.h"

12.编译、链接并运行即可。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7972067.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存