第八章 MFC程序设计鼠标和键盘_第1页
第八章 MFC程序设计鼠标和键盘_第2页
第八章 MFC程序设计鼠标和键盘_第3页
第八章 MFC程序设计鼠标和键盘_第4页
第八章 MFC程序设计鼠标和键盘_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

1、MFC程序设计,鼠标和键盘,作 者:李 季,主要内容,鼠标消息分类 客户区鼠标消息 非客户区鼠标消息 光标 键盘消息,鼠标消息分类,客户区鼠标消息 非客户区鼠标消息,客户区鼠标消息,客户区鼠标消息,当窗口的WNDCLASS包含类样式CS_DBLCLKS,在很短时间内同一鼠标键被连续单击两次时,第二次键按下消息被WM_xBUTTONDBLCLK消息取代。 默认情况下,框架窗口接受双击消息。,客户区鼠标消息,未注册双击消息,连续单击两次产生下面消息序列: WM_xBUTTONDOWN WM_xBUTTONUP WM_xBUTTONDOWN WM_xBUTTONUP,客户区鼠标消息,已注册双击消息,

2、连续单击两次产生下面消息序列: WM_xBUTTONDOWN WM_xBUTTONUP WM_xBUTTONDBLCLK WM_xBUTTONUP,客户区鼠标消息参数,CPoint point 指出光标位置,客户区坐标 在WM_MOUSEMOVE消息中,指出最近的光标位置 UINT nFlags 消息生成时鼠标键以及Shift键和Ctrl键的状态,客户区鼠标消息,非客户区鼠标消息,非客户区鼠标消息,无论窗口是否注册CS_DBLCLKS样式,WM_NCxBUTTONDBLCLK消息都要被发送。,非客户区鼠标消息参数,CPoint point 指出光标位置,屏幕坐标 在WM_MOUSEMOVE消息

3、中,指出最近的光标位置 UINT nHitTest 包含标识窗口非客户区上事件发生地点的命中测试码,非客户区鼠标消息参数,非客户区鼠标消息,ON_WM_NCLBUTTONDBLCLK() void CMainWindow:OnNcLButtonDblClk(UINT nHitTest, CPoint point) if(nHitTest != HTCAPTION) CWnd:OnNcLButtonDblClk(nHitTest, point); ,非客户区鼠标消息,NO_WM_NCHITTEST() UINT CMainWindow:OnNcHitTest(CPoint point) UINT

4、 nHitTest = CFrameWnd:OnNcHitTest(point); if(nHitTest = HTCLIENT) nHitTest = HTCAPTION; return nHitTest; ,光标,注册WNDCLASS,指定目标光标类型为类光标 CString strWndClass = AfxRegisterWndClass(0, AfxGetApp()- LoadStandardCursor(IDC_CROSS), (HBRUSH)(COLOR_WINDOW + 1), AfxGetApp()-LoadSteandardIcon (IDI_WINLOGO); Creat

5、e(strWndClass, _T(“Mouse Capture Demo(Capture Enabled)”);,光标,调用:SetCursor响应WM_SETCURSOR消息 ON_WM_SETCURSOR() BOOL CMainWindow:OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) if(nHitTest = HTCLIENT) :SetCursor(m_hCursor); return TRUE; return CFrameWnd:OnSetCursor(pWnd, nHitTest, message);,光标,隐藏光标

6、 :ShowCursor(FALSE); 显示光标 :ShowCursor(TRUE); 显示光标的次数与隐藏光标的次数相同,才能再次显示光标,沙漏形光标,显示沙漏形光标 CWaitCursor wc; CWaitCursor的构造函数显示沙漏形光标,其析构函数还原原来的光标 如果在变量超出范围之前,还原光标可以调用CWaitCursor:Restore wc.Restore(); 如果想自定义表现形式,可以重载CWinApp:DoWaitCursor,键盘消息,击键消息 WM_KEYDOWN、WM_KEYUP WM_SYSKEYDOWN、WM_SYSKEYUP 击键消息响应函数 Afx_msg void OnMsgName(UINT nChar, UINT nRepCnt, UINT nFlags) 一般交给Windows去处理,键盘消息,字符消息 ON_WM_CHAR() void CWainWindow:OnChar(UINT nChar,

温馨提示

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

评论

0/150

提交评论