如何设计鼠标事件.docx_第1页
如何设计鼠标事件.docx_第2页
如何设计鼠标事件.docx_第3页
如何设计鼠标事件.docx_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

如何设计鼠标事件鼠标的每一个动作都是一个事件,应用程序可以捕获这个事件,并对它作出相应的处理,当然也可以不予理睬。鼠标事件有(左键)单击,双击,右键单击,左键按下,鼠标移动等,本章通过用鼠标画图的例程来介绍如何设计鼠标事件。本章要点1 为鼠标事件添加消息映射2 为鼠标事件函数添加代码3 在面版上画图-画直线的方法5.1 Draw.exe的界面和功能chap05-01程序的上方是文字提示,下面有两个按钮。按下鼠标时移动就可以画出任意图形,用清除按钮可靠以抹掉图形。5.2 Draw程序的界面设计先创建工程文件,在“D:myVCCHO5”建立Draw程序;MFC标准的对话框模式;用静态DLL支持。设计工程的界面,参考下列属性表设计如图chap05-01的界面。控件和标题IDStylesExtended Styles按钮测试IDC_CLEAR_BUTTON默认Client edgeStatic edgeModal Form按钮退出IDOK静态文本画图.IDC_STATIC对齐方式:居中对话框 Draw程序IDD_DRAW_DIALOGTitle, sysytem menu对话框设置字体大为12。编译和运行。5.3 编写代码画一条任意曲线实际上是由很短的直线段构成的,这需要从前一点向当前点即鼠标的现在位置画直线。所以需要定义两个变量来存放前一点的坐标。在鼠标移动时不断地画直线,这需要引进一个消息映射WM_MOUSEMOVE。另外,在面版上画图需要定义一个屏幕设备对象CClientDC dc(this)。1 在头文件DrawDlg.h中定义变量: int m_PrevX, m_PrevY;2 在对话框CDrawDlg中消息映射WM_MOUSEMOVE。在类向导中选中对话框DrawDlg,再在消息列表框中寻找WM_MOUSEMOVE,选中后点击Add Function,就生成函数OnMouseMove(),点Add code立即输入代码。3 函数OnMouseMove()的代码void CDrawDlg:OnMouseMove(UINT nFlags, CPoint point) if(nFlags & MK_LBUTTON = MK_LBUTTON) /定义屏幕设备对象 CClientDC dc(this); dc.MoveTo(m_PrevX, m_PrevY); dc.LineTo(point.x, point.y); m_PrevX = point.x; m_PrevY = point.y; CDialog:OnMouseMove(nFlags, point);MoveTo()定位画笔到前一点,画完直线后把点point储存到m_Prev中。4 给“鼠标按下”写代码添加消息映射WM_MOUSEDOWN,函数OnLButtonDown的功能是保存鼠标点击的当前点,代码为: m_PrevX = point.x; m_PrevY =

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论