您好,欢迎访问三七文档
MFC画直线最近自己在学习如何在VC6.0开发环境下的使用MFCAppWizard(exe)来绘画一条直线,虽然比较简单,通过这样的练习可以帮助你熟悉MFC的开发环境以及其中的消息传递机制,希望对于像我一样初入MFC图形绘制学习的人有帮助第一步:构建MFC窗体打开VisualC++6.0编译器新建→工程→MFCAppWizard(exe),工程名以DrawLine为例,然后确定。为了方便,在MFC应用程序向导—步骤1当中选择“单文档”,其余所有的步骤都为默认值,直接“完成”。这样一个简单的MFC窗体就构建好了,自己不妨Compile—Build—BuildExecute一下。第二步:编辑菜单项选择ResourceView视窗展开Menu文件夹,左键双击IDR_DRAWLITYPE,右边就会出现菜单图形编辑界面,为了简化,我们只在添加帮助→DrawLine功能选择项。双击空白会弹出“菜单项目属性”对话框。ID:ID_DRAW_LINE;标明:DrawLine(&D),其它的为缺省。第三步:建立消息命令如果此时运行该程序,你会发现帮助—DrawLine的功能选项是灰色的,原因就在于我们还没有添加该功能的消息命令相应函数。通过“查看—MessageMaps—Project:DrawLine—Classname:CDrawLineView—ObjectIDs:ID_DRAW_LINE—选定COMMAND—AddFunction…”,其它为默认,最后确定完成。现在如果再重新运行该程序的话,会发现原来的灰色已经消除了。第四步:添加鼠标消息响应打开ClassView视窗,右键选定CDrawLineView,选择AddWindowsMesssageHandler会弹出对话框,完成CDrawLineView类的WM_LBUTTONDOWN、WM_MOUSEMOVE、WM_LBUTTONUP三个Windows消息事件的新建。第五步:添加响应代码首先,在ClassView视窗中双击CDrawLineView会定位到“DrawLineView.h:interfaceoftheCDrawLineViewclass”的文件,添加CDrawLineView类的成员:protected:intm_Drag;POINTm_pPrev;POINTm_pOrigin;三个成员变量。视窗中展开CDrawLineView类,双击定位OnLBUTTONDOWN()函数。在该函数消息响应处添加如下代码://建立好绘图的设备环境CClientDCdc(this);OnPrepareDC(&dc);dc.DPtoLP(&point);//获取起始点坐标m_pPrev=point;m_pOrigin=point;m_Drag=1;然后,定位于OnMouseMove(),添加如下代码(其中关键用到了橡皮筋技术)://建立好绘图的设备环境CClientDCdc(this);OnPrepareDC(&dc);dc.DPtoLP(&point);dc.SetROP2(R2_NOT);//橡皮筋绘图技术//判断是否BUTTONDOWNif(m_Drag){dc.MoveTo(m_pOrigin);dc.LineTo(m_pPrev);dc.MoveTo(m_pOrigin);dc.LineTo(point);}m_pPrev=point;最后,在OnLBUTTONDOWN()添加代码:m_Drag=0;程序运行效果图
本文标题:MFC画直线
链接地址:https://www.777doc.com/doc-1889103 .html