- 1、本文档共26页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MFC教程第07章鼠标和键盘
第7章 鼠标和键盘 本章主要内容 鼠标的客户区消息和非客户区消息的处理 鼠标消息的捕获 处理键盘消息 7.1? 处理鼠标消息 根据产生鼠标消息时鼠标光标所处的位置,鼠标消息分为两类: 客户区鼠标消息 非客户区鼠标消息 7.1? 处理鼠标消息 MFC中,鼠标消息响应函数的原型一般为: afx_msg void OnLButtonDown( UINT nFlags, CPoint point ); 例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-4 当鼠标左键按下时,可以捕获鼠标消息的程序. 如果画线??? 7.2???? 处理键盘消息 Windows对每个按键定义了与设备无关的编码,这种编码就叫做虚拟码。有了这个虚拟码,Windows程序员就可以不必理睬扫描码,而使用虚拟码来编写程序了 例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~15 按键的重复次数 16~23 按键的扫描码 24 扩展键标志(0:无扩展键;1:有扩 展键 ,例如一个功能键或者一个 数字小键盘上的键) 25~28 由windows内部使用 29
您可能关注的文档
- GB150与JB4732的区别.doc
- 研发工程师为你详解山寨机品牌机和水货机3.doc
- GBT煤中全硫测定方法.doc
- GB城市轨道交通技术规范.doc
- 单体液压支柱管理规定.doc
- LinearLTC2991八路I2C电压电流和温度监测方案.docx
- linux技术实验指导.doc
- gcs组策略.ppt
- GC型轴径向低压甲醇合成技术在我公司的应用-南京国昌化工科技(精选).docx
- liu流体力学答案.doc
- 2023届东北三省四市教研联合体高三下学期模拟试卷(一)英语试题(2).pdf
- 2022~2023仓储管理人员考试题库及答案参考544.pdf
- 2023年部编版语文三年级上册读不完的大书教案范文(精推3篇).pdf
- 2023年-2024年土地登记代理人之地籍调查练习题(二)及答案.pdf
- 2022-2023年主治医师之内科主治303真题练习试卷B卷附答案.pdf
- 2022-2023学年江苏省南通市海门区苏教版六年级上册期末教学质量调研测试数学试卷.pdf
- 优质资源部编一上语文《gkh》获奖公开课教案教学设计二【一等奖】.pdf
- 2022~2023中医执业医师考试题库及答案解析第126期.pdf
- 2022时事与政策论文(3篇).pdf
- 2022~2023电信职业技能鉴定考试题库及满分答案384.pdf
最近下载
- 单桩竖向抗压静载试验.pptx
- 立足生本,拓展实效—小学语文生本教育思想渗透和实践研究 论文.docx
- HACCP 1.0食品安全文化推行计划.doc
- 反对享乐主义.pptx VIP
- 2023江苏苏州常熟市公安局招聘警务辅助人员(100人)笔试备考题库及答案解析.docx VIP
- 《陕北地区高中英语写作教学问卷调查分析报告》-来源:新课程(下旬)(第2018011期)-山西三晋报刊传媒集团有限责任公司.pdf VIP
- 一种隧道烟尘排放装置.pdf VIP
- 人教版(新教材)七年级上册数学第三单元《数学活动》教学课件.pptx
- KARCHER凯驰卡赫家庭及园艺高压清洗机K 5 Premium Full Control CN用户手册说明书_第3份.pdf
- 2023年山东省聊城市临清市八年级上学期期中英语试题及答案.doc VIP
文档评论(0)