最近学习MFC。想做一个画图软件。画图要画直线、椭圆、以及矩形等等。这里只以直线为例。
一.画线
1.MFC(exe)——建立Single doccument
2.resources中单击Menu,再单击IDR_MAINFRAME
3.进入MEnu后,单击两下白色按钮,Caption中命名Tools
4.再单击两下Tools的下级菜单,ID中命名ID_Line,Caption中命名Line
5.右击Line按钮,选择ClassWizard,在Message Maps中,Classname中选择View类——Add Function
点击ok即可。
6.点开classview并右击View并选择Add Windows Message handle并导入LBUTTOUDOWN和LBUTTONUP
7.添加Add variable。Type中写CPoint,name中写x,选Private。同样再添加变量y。
8.点击View中的ONLBUTTONDOWN在里面输入代码x=point;
9.OnLButtonUp里输入代码
y=point;CClientDC dc(this);dc.MoveTo(x);dc.LineTo(y);Invalidate(false);
10.可以了
二.给线添色
1.在画线的基础上,首先在menu中添加颜色按钮,并在下一级中写上 自定义,ID_Zidingyi.添加类向导classwizard。classname为View类。command——Add function。
2.在classview中添加member variable,TYPE为COLORREF,名字为m_color,接着再添加画笔,类型CPen,名字为pen。
3.在OnLButtonUp里添加画笔,
CPen pen (PS_SOLID,1,m_color);//加在CClientDC dc(this)和dc.SelectObject(&pen);之间
dc.SelectObject(&pen);
4.在onzidingyi函数中加入
CColorDialog dlg ;
dlg.DoModal();
m_color=dlg.GetColor();
三.点自定义菜单弹出对话框
点菜单弹出一对话框
1.在Resource中右击Dialog插入dialog。建立所需的对话框。
2.插入中选新建类命名Mydialog基于CDialog,在Classview中则存在了一个新类Mydialog。
3.在menu中添加一下拉菜单,命名自定义,ID_Define;,CMainView建立类向导。在onDefine中添加代码Mydialog dia;dia.DoModal();
4.但要想要运行程序还要在
#include “stdafx.h”
#include “huatuprogream.h”
#include “MyDialog.h”
#include “MainFrm.h”
#include “Mydialog.h” //添加此头文件
5.成功.
四.在弹出对话框中自定义线宽
1.在MYDialog中定义input和m_1(定义Edit通过在Member Variables中点AddVariables)
2.onbutton1里加入下列代码:
UpdateData(true);//TRUE代表从外界传到内部
input=m_1;
CDialog::OnCancel();
3.在Define中添加
MyDialog dia;
dia.DoModal();
n=dia.input;
4.CPen pen (PS_SOLID, n,m_COLOR);
n即是线宽通过传递n的值来控制线宽,可在函数中定义。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!