第17讲鼠标消息响应与界面设计.ppt

  1. 1、本文档共35页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第17讲鼠标消息响应与界面设计

第17讲 鼠标消息响应和界面设计 本讲主要内容 鼠标消息响应 设计应用程序界面元素 工具栏 状态栏 鼠标光标 窗口标题与图标 鼠标消息响应 【例9-4】修改例9-3的单文档应用程序MyTextOut,程序运行后使用菜单命令,调用对话框输入显示的文本内容,在鼠标点击位置显示文本。 鼠标消息响应 【编程步骤】 (1)例9-3中已经做好的对话框资源保留不变。在本例中只需要使用该对话框输入的文本内容,输入的坐标值不在本例中使用。 鼠标消息响应 (2)使用ClassWizard为视图类中添加鼠标消息的响应函数。 在Message Maps标签中,Class name为CMyTextOutView,ObjectIDs为CMyTextOutView,Messages为WM_LBUTTONDOWN,点击“Add Function”,为CMyTextOutView类添加了成员函数OnLButtonDown。 类似地,为“释放鼠标左键”事件,即WM_LBUTTONUP消息添加响应函数OnLButtonUp。 鼠标消息响应 (3)编写鼠标消息的响应函数。 当用户在视图窗口中单击鼠标左键时,应用程序要捕获鼠标,记下鼠标当时的位置坐标,以便将文本串显示于该位置。 当用户松开鼠标左键时,应用程序要释放鼠标,并刷新视图,以显示程序运行结果。 鼠标消息响应 记录鼠标位置的变量类型为CPoint类型,变量名为 m_TextPos,该变量设计为CMyTextOutView类的成员,以便从该类的成员函数OnLButtonDown(UINT nFlags, CPoint point)的第二个参数point中取得鼠标当前位置信息。 打开MyTextOutView.h文件,添加代码如下: 鼠标消息响应 class CMyTextOutView : public CView { …… protected: CPoint m_TextPos; //记录鼠标左击当时的位置坐标 // Generated message map functions protected: //{{AFX_MSG(CMyTextOutView) afx_msg void OnLButtonDown(UINT nFlags, CPoint point); //自动生成 afx_msg void OnLButtonUp(UINT nFlags, CPoint point); //自动生成 …… }; 鼠标消息响应 打开MyTextOutView.cpp文件,编写两个鼠标消息响应函数。 void CMyTextOutView::OnLButtonDown(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default SetCapture(); //捕获鼠标 //将鼠标单击时的位置坐标保存到变量m_TextPos中 m_TextPos = point; CView::OnLButtonDown(nFlags, point); } 鼠标消息响应 void CMyTextOutView::OnLButtonUp(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default ReleaseCapture(); //必须释放鼠标 CView::OnLButtonUp(nFlags, point); Invalidate(TRUE); //刷新视图 } 鼠标消息响应 (4)修改相关文件中的代码。打开MyTextOutView.cpp文件,重新编写OnDraw函数: void CTextOut_3View::OnDraw(CDC* pDC) { CTextOut_3Doc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here pDC-TextOut(m_TextPos.x,m_TextPos.y,pDoc-m_strText); } 编译连接,运行程序界面如图所示。 设计应用程序界面元素 【例9-5】修改例9-4的单文档应用程序MyTextOu

文档评论(0)

3471161553 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档