关于回答VC6MFC定义圆类、直线类、矩形类,绘图

 时间:2024-10-01 01:22:43

此经验是回答一网友关于类的建立和使用的经验,其实我也是借着回答他的问题来学习.如何在MFC里建立基类,派生类和类的使用

工具/原料

VC6

方法/步骤

1、首先建立一个单文档的MFC,具体步骤如下图

关于回答VC6MFC定义圆类、直线类、矩形类,绘图

关于回答VC6MFC定义圆类、直线类、矩形类,绘图

关于回答VC6MFC定义圆类、直线类、矩形类,绘图

关于回答VC6MFC定义圆类、直线类、矩形类,绘图

关于回答VC6MFC定义圆类、直线类、矩形类,绘图

关于回答VC6MFC定义圆类、直线类、矩形类,绘图

2、工程建立完成后就添加网友需要的类,首先我想了一下,既然要学习如何使用类,那么瘫蝠熨夯我们就要想一下类怎么用好恽贴淑溪类,首先分析直线,圆,矩形,它们都有共同的属性,那就是绘图的位置,所以就先建立一个派生于CDC的基类,然后它们的绘制方法不一样,就分别建立它们的绘图类就行了.步骤如下:

关于回答VC6MFC定义圆类、直线类、矩形类,绘图

关于回答VC6MFC定义圆类、直线类、矩形类,绘图

关于回答VC6MFC定义圆类、直线类、矩形类,绘图

3、CDrawBase类生成后,就为它添加变量和函数,步骤如下:

关于回答VC6MFC定义圆类、直线类、矩形类,绘图

关于回答VC6MFC定义圆类、直线类、矩形类,绘图

4、基类完成后,就分别添加癣嗡赧箬圆,直线,矩形的派生类,其实派生类很简单,就是添加一个绘图的方法函数,pDC->E造婷用痃llipse(m_Start.x,m_Start.y,m_End.x,m_End.y);//画圆这里的pDC是通过参数引入的DC,绘图必需要有DC.下面的图只介绍了DrawEP类,其它的都不用动,为它添加一个Draw(CDC*pDC)函数就行了.直线类DrawLine和矩形类DrawRC和圆类DrawEP的建立方法都是一样的,我就不再单独说了.

关于回答VC6MFC定义圆类、直线类、矩形类,绘图

关于回答VC6MFC定义圆类、直线类、矩形类,绘图

关于回答VC6MFC定义圆类、直线类、矩形类,绘图

关于回答VC6MFC定义圆类、直线类、矩形类,绘图

5、好了,类建立完成了.下面就是在窗口菜单栏中添加直线,圆,矩形的选择菜单了,同样的因为方法都是一样的,所以我只介绍一种.步骤如下:

关于回答VC6MFC定义圆类、直线类、矩形类,绘图

关于回答VC6MFC定义圆类、直线类、矩形类,绘图

6、菜单添加完成后,就为这些菜单添加消息映射函数,方法就是按快捷键Ctrl+W弹出下面的菜单,然后按图中的步骤添加,然后在这些函数里添加图中的代码,目的就是把选择相应菜单ID传到变量m_Choose里,便于后面作为判断.

关于回答VC6MFC定义圆类、直线类、矩形类,绘图

关于回答VC6MFC定义圆类、直线类、矩形类,绘图

7、菜单搞完,就开始添加鼠标的函数,我们只需要鼠标的按下和放开两个事件,然后在这两个函数中添加相应的代码完成绘图,方法如下

关于回答VC6MFC定义圆类、直线类、矩形类,绘图

关于回答VC6MFC定义圆类、直线类、矩形类,绘图

8、程序启动的时候,需要一个默认的绘图方式,这里我就把直线作为默认的绘图方式,所以需要在构造函数中对m_Choose初始化.

关于回答VC6MFC定义圆类、直线类、矩形类,绘图

9、最后完成的效果如下,其实如果要真完吮钾熨追成这些功能的话不需要单独建立一个类来做,这样挺麻烦的,还增加了代洁船诼抨码,其实可以就用一个函数就能完成,当然我相信你也是需要学习类所以才问这个问题的,还有就是如何每个图需要很多的属性的话,用类来建立还是挺好的.

关于回答VC6MFC定义圆类、直线类、矩形类,绘图

如何在VS中设置允许使用丰富代码导航功能 bootstrap如何区别container和container-fluid C-Free5如何设置代码提示显示符号工具条 完全二叉树的叶子节点数公式是什么 邻接矩阵怎么求
热门搜索
天之少女 湿疹的图片 邪恶小漫画 简笔画图片大全可爱 透骨草图片