MFC绘图板(二)

news/2024/12/2 13:50:12/

接上篇《MFC绘图板(一)》:http://blog.csdn.net/wwkaven/article/details/40657709

1、为使程序更美观,添加纸张效果:

(1)在CBottomFormView中添加一个成员变量:

UINT m_nPaperBorderSpace;

(2)初始值设为20:

(3)重写CBottomFormView类的OnDraw虚函数:



(4)在OnDraw函数中添加如下代码:

void CBottomFormView::OnDraw(CDC* pDC)
{// TODO: 在此添加专用代码和/或调用基类CRect rcBottomView;GetClientRect(&rcBottomView);pDC->FillRect(&rcBottomView, &CBrush(RGB(128, 138, 135)));CRect rcImage(rcBottomView);rcImage.left	+= m_nPaperBorderSpace;rcImage.top		+= m_nPaperBorderSpace;rcImage.right	-= m_nPaperBorderSpace;rcImage.bottom	-= m_nPaperBorderSpace;pDC->FillRect(&rcImage, &CBrush(RGB(255, 255, 255)));
}

(5)运行效果如下:



2、接下来就是绘图操作了,添加一个绘图类CDrawingGraphics:



3、类CDrawingGraphics用于绘制相应的图形。

4、下面来介绍一下绘图的实现过程,主要是通过响应鼠标左键的按下和弹起事件,获取两个点的坐标。然后再根据这两个点绘制直线、矩形或椭圆。下面是整个绘图过程(以绘制直线为例):

(1)定义两个成员变量,用于保存绘制直线所需的两个点的坐标;

(2)鼠标左键按下,保存此时的鼠标坐标,即为待绘制直线的起点;

(3)按下鼠标左键的同时移动鼠标至待绘制直线的终点;

(4)释放鼠标左键,同样保存此时的鼠标坐标,即为待绘制直线的终点;

(5)接下来,只要调用相应的绘图函数,就可以了。


5、上述方法有一个缺点,那就是只有在鼠标左键释放后才能确定直线位置,才能绘制相应的图形。而我们期望的是能够动态的绘制图形,即当鼠标移动时不断调整待绘制图形的样子,知道鼠标左键释放。以下是几个注意点:

(1)要实现上述功能,显然要相应鼠标移动的消息,但是如如果根据鼠标移动时的鼠标坐标不断绘制直线,那么效果会是下面这样:


(2)这样的效果显然是不行的,解决思路如下:在鼠标左键按下时保存绘图区域的图像,在每次相应鼠标移动消息函数时,先将保存的图像复制到绘图区域,接着在绘制直线,这样就只会产生一条直线了。

详见:http://blog.csdn.net/wwkaven/article/details/40590781

和 http://blog.csdn.net/wwkaven/article/details/40592023


6、待续... ...



http://www.ppmy.cn/news/251523.html

相关文章

MFC 绘图板

源码下载: http://download.csdn.net/detail/dai_jing/6041993

MFC绘图板(三)

1、接前文《MFC绘图板(二)》 2、本以为用MFC实现一个绘图程序很简单,但是实际做起来却遇到了许多问题,下面对开发过程中的一些问题记录如下: 3、首先,介绍以下MFC绘图板实现的功能: &#xff0…

绘图板程序设计及其具体实现 第一篇

成果展示 首先展示几个使用本绘图板程序的绘图成果。 下面是程序的功能介绍(也是由本绘图板程序绘制的)。 总体架构 由三个包和一个主窗口类构成,utils包中为绘制图形中用到的所有工具类,element包中为所有的图形元素类&#xf…

creo 6.0—02:单位的设置,默认绘图模板的绘制(重点)

1、3 单位的设置 我们一般设计都是公制单位,但是 creo 都是默认为英制单位。 修改单位的方式如下: 1、点击 文件——准备——模型属性 2、然后点击单位——更改: 点击更改后会弹出如下的对话框。 选择毫米牛顿秒: 3、选择设置…

SCI论文绘图—Python绘图常用模板及技巧

关注 M r . m a t e r i a l , \color{Violet} \rm Mr.material\ , Mr.material

绘图板应用讲解计算机,电脑绘图板怎么用?基础电脑绘图板入门教程!

电脑绘图板怎么用?电脑绘图板也就是我们平常说的数位板,简称板绘,百科的解释是运用数码现代技术在电脑上进行描绘、上色等绘画操作。相对于手绘而言,板绘易于修改,上色方便,便于携带等优势让很多人开始学习…

MFC绘图板(一)

该程序基于VS2010 SP1,MFC单文档结构 1、创建项目: (1)利用MFC想到创建一个单文档工程: (2)选择单文档,MFC标准 (3)选择经典菜单,传统工具栏&am…

Qt——绘图板

mainwindow.cpp: myDialog.cpp: