- 1、本文档共93页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
可视的化编程课件_02
* * * * 窗口消息(4) WM_PAINT消息→CTestView::OnPaint() →CTestView::OnDraw() * 鼠标消息(1) 当用户对鼠标进行操作时,产生对应的消息,系统将消息发送给窗口 鼠标消息主要包括: WM_LBUTTONDOWN 鼠标左键按下 WM_LBUTTONUP 鼠标左键释放 WM_LBUTTONDBLCLK 鼠标左键双击 WM_MOUSEMOVE 鼠标移动 WM_MOUSEWHEEL 鼠标滑轮移动 * 鼠标消息(2) 鼠标消息处理函数的参数:nFlag和point nFlag:鼠标按钮状态,鼠标事件发生时键盘某些键的状态,每位由nFlag相应位表示 MK_CONTROL、MK_SHIFT、MK_LBUTTON、MK_MBUTTON、MK_RBUTTON point:鼠标事件发生时的光标位置 * 鼠标消息(3) 在CTestView::OnLButtonDown()中 窗口位置、大小变化后,哪些信息保留,哪些信息消失?如何保留必威体育精装版鼠标信息? 例2-4 CDC* pDC=GetDC(); pDC-TextOutW(point.x,point.y,LMouse Clicked!); ReleaseDC(pDC); * 鼠标消息(4) 在CTestView类定义中 在CTestView::CTestView()中 private: CPoint m_pos; CString m_str; m_pos=CPoint(0,0); m_str.Empty(); * 鼠标消息(5) 在CTestView::OnLButtonDown()中 在CTestView::OnDraw()中 m_pos=point; if(nFlags MK_CONTROL) m_str=LMouse+Ctrl Clicked!; else m_str=LMouse Clicked!; Invalidate(true); pDC-TextOutW(m_pos.x,m_pos.y,m_str); * 鼠标消息(6) 鼠标单击与标志位处理 * 键盘消息(1) 用户对键盘进行操作,会产生对应的消息,系统将消息发送给窗口 键盘消息主要包括: WM_KEYDOWN:键盘按下 WM_KEYUP:键盘弹起 WM_CHAR:输入一个字符 * 键盘消息(2) 在CTestView::OnChar()中 void CTestView::OnChar(UINT nChar,UINT nRepCnt,UINT nFlags) { CString str; str.Format(L%c Key Entered!,nChar); MessageBox(str); } 例2-5 * 键盘消息(3) 特殊键处理,例如F1、F2、↑、↓等 BOOL CTestView::PreTranslateMessage(MSG* pMsg) { if(pMsg-message==WM_KEYDOWN) { if(pMsg-wParam==VK_F1) MessageBox(LF1 Key Entered!); if(pMsg-wParam==VK_UP) MessageBox(L↑ Key Entered!); } } * 键盘消息(4) 普通键与特殊键处理 * 菜单与工具栏消息(1) 添加菜单消息 ResourceView→Menu→IDR_MAINFRAME 一级菜单项“Test”→二级菜单项“MessageBox”(ID_TEST_MESSAGEBOX) 一级菜单项“Test→”二级菜单项“ColorDialog”(ID_TEST_COLORDIALOG) 例2-6 * 菜单与工具栏消息(2) 在CTestView::OnTestMessage()中 MessageBox(LMessageBox Clicked!); * 菜单与工具栏消息(3) 在CTestView::OnTestColor()中 CColorDialog dlg; dlg.DoModal(); * 菜单与工具栏消息(4) 添加工具栏按钮 ResourceView→ToolBar→IDR_MAINFRAME,添加按钮(ID_TEST_COLORDIALOG) * WM_TIMER消息(1) WM_TIMER消息是一种计时器消息,可用于进行周期性处理 通过SetTimer()函数设置时钟,当预定的时间到达,系统产生WM_TIMER消息,并通过参数指出是哪个时钟的事件 * WM_TIMER消息(2) WM_CREATE消息,在OnCreate()中 SetTimer(
文档评论(0)