4.1 键盘消息.pptxVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
4.1 键盘消息

4.1 键盘消息 4.2 鼠标消息 4.3 定时器消息 4.4 消息映射工作;4.1 键盘消息;消息的结构 typedef struct tagMSG { HWND hwnd; UINT message; WPARAM wParam; LPARAM Iparam; DWORD time; POINT pt; } MSG; hwnd:标识获得消息的窗口进程的窗口句柄。 message:指定消息值。 wParam:消息的第一个参数。 Iparam:消息的第二个参数。 time:指定消息发送时的时间。 pt:以屏幕坐标表示消息发送时的鼠标指针的位置。; 在按键被按下 时候,就会产生一个键盘消息, 这个消息包含按键的扫描码、虚键码以及和按键动作有关的信息。设备驱动程序把这个消息放到系统消息队列中。 Windows系统从系统消息队列中取出这类消息,在把它发送到相应的应用程序的消息队列中。最后,应用程序从自己的消息队列中取出这个消息,进行相应的处理。;3 系统键和非系统键 凡是【Alt】键和其它键一同按下的键组合称为系统键, 其余是非系统键。键盘消息分为系统键消息和非系统消息。 ;afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags); nChar不是虚拟键码,而是可打印字符 。;课堂练习: 1.键盘上下左右键的鼠标光标移动 2.当用户按下空格键时,鼠标光标移至一个随机位置.;CPoint ptcurpos; if(::GetCursorPos(ptcurpos)) {CRect rcclient; GetClientRect(rcclient); ClientToScreen(rcclient); switch(nChar){ case VK_LEFT: ptcurpos.x-=5; if (rcclient.PtInRect(ptcurpos)) ::SetCursorPos(ptcurpos.x,ptcurpos.y); break; case VK_DOWN: 。。。。 }};ptcurpos.x=::rand( )%::GetSystemMetrics(SM_CXSCREEN); ptcurpos.y=::rand( )%::GetSystemMetrics(SM_CYSCREEN);;4.2 鼠标消息; 移动鼠标: WM—MOUSEM0VE 按下鼠标键: WM—xBUTTONDOWN 放开鼠标键: WM—xBUTTONUP 双击鼠标键: WM—xBUTTONDBCLK 左键 x=L 右键 x=R 中键x=M ;客户区鼠标消息响应函数原型: afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point); afx_msg void OnLButtonDown(UINT nFlags, CPoint point); afx_msg void OnLButtonUp(UINT nFlags, CPoint point); afx_msg void OnMButtonDblClk(UINT nFlags, CPoint point); afx_msg void OnMButtonDown(UINT nFlags, CPoint point); afx_msg void OnMButtonUp(UINT nFlags, CPoint point); afx_msg void OnMouseMove(UINT nFlags, CPoint point); afx_msg void OnRButtonDblClk(UINT nFlags, CPoint point); afx_msg void OnRButtonDown(UINT nFlags, CPoint point); afx_msg void OnRButtonUp(UINT nFlags, CPoint point); ;注意: 通常情况下,只有当鼠标的光标位于某一窗口的客户区时,才能接收到鼠标消息. 捕捉鼠标函数: SetCapture() 释放鼠标函数: ReleaseCapture();nFlags参数包含标识按下鼠标和键盘状态的位组, 表明哪种虚拟键被按下。可以是下表所示各值的组合。 point的意义是鼠标的光标坐标值。 这坐标值标明了鼠标光标的热点位置。 ;课堂练习: 1. 请用VC++6.0编写一单文档应用程序,实现在运行时任何时刻单击鼠标左按钮,就在鼠标光标位置处显示文字。;void CKeyView::Draw

文档评论(0)

f8r9t5c + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档