- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MFC教程第7章鼠标和键盘
* 第7章 鼠标和键盘 * 本章主要内容 鼠标的客户区消息和非客户区消息的处理 鼠标消息的捕获 处理键盘消息 * 7.1? 处理鼠标消息 根据产生鼠标消息时鼠标光标所处的位置,鼠标消息分为两类: 客户区鼠标消息 非客户区鼠标消息 * 7.1? 处理鼠标消息 * MFC中,鼠标消息响应函数的原型一般为: afx_msg void OnLButtonDown( UINT nFlags, CPoint point ); 掩码 产生鼠标消息时光标在窗口客户区的位置 7.1? 处理鼠标消息 * 7.1? 处理鼠标消息 * 例7-1 编写可以在用户区中绘制一个矩形的应用程序,在按下鼠标左键后,这个矩形会把它的左上角移动到鼠标位置;而当按下Shift键的同时按下鼠标左键,则矩形恢复原位置. 例7-2一个测试鼠标移动消息的程序. * 7.1.2非客户区鼠标消息 WM_NCLBUTTONDBCLK 双击鼠标左键 WM_NCLBUTTONDOWN 按下鼠标左键 WM_NCLBUTTONUP 释放鼠标左键 WM_NCMOUSEMOVE 在客户区移动鼠标 WM_NCRBUTTONDBCLK 双击鼠标右键 WM_NCRBUTTONDOWN 按下鼠标右键 WM_NCRBUTTONUP 释放鼠标右键 * 例7-3编写一个程序,使鼠标的光标在标题栏或窗口边框上移动时,在用户区显示鼠标光标的位置. * 说明: 使用非客户区鼠标移动消息WM_MOUSEMOVE,并在其响应函数中编写显示代码. 用MFC AppWizard创建一个单文档应用程序框架 在主框架窗口类CMainFrame的声明中,手工添加消息响应函数的声明 * afx_msg void OnNcMouseMove(UINT nHitTest,CPoint point); 3.在主框架窗口类CMainFrame的实现文件的消息映射表中,添加消息映射 BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd) ON_WM_NCMOUSEMOVE() END_MESSAGE_MAP() * 在主框架窗口类CMainFrame的实现文件中,添加鼠标响应函数的实现: void CMainFrame::OnNcMouseMove( UINT nHitTest, CPoint point) { CClientDC clientDC(this); char s[20]; wsprintf(s, X=%d Y=%d , point.x, point.y); clientDC.TextOut(20, 20, s); CFrameWnd::OnNcMouseMove(nHitTest,point); } * 如果鼠标处在应用程序窗口之外,还希望可以接受鼠标消息的话,则必须调用捕获鼠标消息函数: CWnd* SetCapture(); 完成了所应该做的工作之后,应用程序应该及时释放鼠标: BOOL ReleaseCapture(); 7.1.3 鼠标消息的捕获 * 例7-4 当鼠标左键按下时,可以捕获鼠标消息的程序. 如果画线??? * 7.2???? 处理键盘消息 Windows对每个按键定义了和设备无关的编码,这种编码就叫做虚拟码。有了这个虚拟码,Windows程序员就可以不必理睬扫描码,而使用虚拟码来编写程序了 虚拟码 扫描码 * 7.2???? 处理键盘消息 , * 例7-5 设计一个程序,在用户区显示一个圆形,当分别按下键盘上的左箭头键或者右箭头键时,可以使这个圆形向左或者向右移动. * 7.2.2一般按键消息 Windows的一般按键消息 WM_CHAR 当敲击键盘上的字符键时,产生该消息 WM_KEYDOWN 任意键(包括字符键)被按下时都产 生该消息.如果被按下的是字符键, 在产生消息的同时还产生字符消息. WM_KEYUP 任意键(包括字符键)被释放时都产 生该消息 * 消息响应函数 void OnChar(UINT nChar,UINT RepCnt, UINT nFlags); void OnKeyDown(UINT nChar,UINT nRepCnt,UINT nFlags); void OnKeyUp(UINT nChar,UINT nRepCnt,UINT nFlags); * 参数nFlags传递的是按键的一些位信息,它是一个32位数,各位所表达的含义如下: 0~
您可能关注的文档
最近下载
- 派出所校园防欺凌方案.docx VIP
- 汽车钢板弹簧后悬设计答辩--公开课件设计.ppt VIP
- 义务教育版(2024)七年级全一册信息科技 第9课 数据传输有新意 教案.docx VIP
- 7氯丁橡胶总结.ppt VIP
- 华为HCIA-GaussDB GaussDB应用开发 H13-911考试题库-下(判断、填空题).docx VIP
- DB37T5072-2016山东建筑工程建筑结构施工技术资料-全套资料表格word.docx VIP
- DB37T5072-2016山东建筑工程建筑结构施工技术资料-全套资料表格word.docx VIP
- DB37T5072_2016山东建筑工程建筑结构施工技术资料_[全套]资料表格word.docx VIP
- 一年级拼音书写四线三格.docx VIP
- 军民航防相撞课件.pptx VIP
文档评论(0)