1.客户区鼠标消息在文档类添加数据成员,并初始化。添加消息响应函数的方法:在工程管理窗口的Class Views卡中,右击视图类,选择Add Windows Message Handler在选项中选择要添加的消息函数。在消息映射函数中添加代码。2.非客户区鼠标消息WM_NCLBUTTONDBCLK 双击鼠标左键WM_NCLBUTTONDOWN 按下鼠标左键WM_NCLBUTTONUP 释放鼠标左键WM_NCMOUSEMOVE 在客户区移动鼠标WM_NCRBUTTONDBCLK 双击鼠标右键WM_NCRBUTTONDOWN 按下鼠标右键WM_NCRBUTTONUP 释放鼠标右键Windows 并不希望用户使用非客户区鼠标消息,所以Visual C++没有提供使用非客户区鼠标消息的编程工具。如果非要使用非客户区鼠标消息的话,则程序员必须用手工方法在程序中添加非客户区鼠标消息映射宏和对应的消息响应函数。3.鼠标消息的捕获为了当鼠标移出应用程序窗口外时,应用程序也能接收到鼠标消息,而使用捕获鼠标消息的函数:CWnd* SetCapture();捕获鼠标消息并完成所做的工作后,应用程序应及时释放鼠标。以使鼠标可以按系统预定的正常方式发送。否则将使鼠标一些正常的作用失效。(例如,当鼠标单击窗口的关闭按钮时,程序却不能关闭。)释放鼠标的函数:BOOL ReleaseCapture();4.处理键盘消息扫描码:按下某个键时,键盘的接口产生的与该键对应的编码。扫描码与设备有关。虚拟码:为方便程序设计,Windows 对每个按键定义的与设备无关的编码。键盘上的部分虚拟码:VK_ADD '+'键 VK_BACK BackSpaceVK_CONTROL CtrlVK_F1~VK_F12 F1~F12一般按键消息:WM_CHAR 当敲击键盘上的字符键时,产生该消息 WM_KEYDOWN 任意键被按下时都产生该消息,如果被按下的是字符键,在产生WM_KEYDOWN消息的同时还产生字符消息WM_KEYUP 任意键被释放时都产生该消息3个消息响应函数:void OnChar(UINT nChar,UINT nRepCnt,UINT nFlags);void OnKeyDown(UINT nChar,UINT nRepCnt,UINT nFlags);void OnKeyUp(UINT nChar,UINT nRepCnt,UINT nFlags);系统按键消息:用户按下ALT键的同时,右按下其它相关输入键时产生的消息。4.应用程序窗口的焦点应用程序的窗口获得输入焦点时,发出WM_SETFOCUS消息窗口失去输入焦点时,发出WM_KILLFOCUS消息

评论