VC
								
								中用
								
										KeyPress
								
								表示键盘响应的所有事件,包括
								
										OnKeyDown
								
								事件(键按下)、
								
										OnKeyUp
								
								事件(键按下后弹起)和
								
										OnKeyPress
								
								事件(按了某个键)。
						
				
		
		
				
						
								
										OnKeyuUp
								
								事件的语法为
								
										
												 void Object1:: OnKeyUp( UINT nChar, UINT nRepCnt, UINT nFlags );
								
						
				
		
		
				
						
								
										OnKeyDown
								
								事件的语法为
								
										
												 void Object1:: OnKeyDown( UINT nChar, UINT nRepCnt, UINT nFlags );
								
						
				
		
		
				
						
								这里参数
								
										nChar
								
								代表的是键盘上各键的代码,是编写程序时必须要写明的,而参数
								
										nRepCnt,
								
								和
								
										nFlags
								
								则可以使用默认值而不必编写。
						
				
		
		
				
						
								下面说明
								
										VC
								
								的
								
										KeyPress
								
								事件中的
								
										nChar
								
								代码与键盘中各键的对应关系:
						
				
		
		
				
						
								
										VK_0 
								
								到
								
										VK_9 
								
								表示键盘上数字“
								
										0
								
								”到“
								
										9
								
								”键
								
										(ASCII
								
								码为
								
										0x30 - 0x39)
								
								;
								
										
										
								
						
				
		
		
				
						
								
										VK_A 
								
								到
								
										VK_Z 
								
								表示键盘上字母“
								
										A
								
								”到“
								
										Z
								
								”键
								
										(ASCII
								
								码为
								
										0x41 - 0x5a)
								
								;
								
										
										
								
						
				
		
		
				
						
								
										VK_ADD 
								
								表示数字键盘上的“
								
										+
								
								”键。
								
										
										
								
						
				
		
		
				
						
								
										VK_ALT 
								
								表示键盘上
								
								
								“
								
										ALT
								
								”键。
								
										
										
								
						
				
		
		
				
						
								
										VK_BACK_QUOTE 
								
								表示键盘上
								
								
								“
								
										 `
								
								”键。
						
				
		
		
				
						
								
										VK_BACK_SLASH 
								
								表示键盘上
								
								
								“
								
										\
								
								”键。
						
				
		
		
				
						
								
										VK_BACK_SPACE 
								
								表示键盘上
								
								
								“
								
										BACKSPACE
								
								“键。
								
										
										
								
						
				
		
		
				
						
								
										VK_CAPS_LOCK 
								
								表示键盘上
								
								
								“
								
										CAPS LOCK
								
								”键。
								
										
										
								
						
				
		
		
				
						
								
										VK_CLOSE_BRACKET 
								
								表示键盘上
								
								
								“
								
										]
								
								”键。
								
										
										
								
						
				
		
		
				
						
								
										VK_COMMA 
								
								表示键盘上
								
								
								“
								
										,
								
								”键。
						
				
		
		
				
						
								
										VK_CONTROL 
								
								表示键盘上
								
								
								“
								
										CTRL
								
								”键。
						
				
		
		
				
						
								
										VK_DECIMAL 
								
								表示数字键盘上
								
								
								“
								
										.
								
								”键。
						
				
		
		
				
						
								
										VK_DELETE 
								
								表示键盘上
								
								
								“
								
										DELETE
								
								”键。
						
				
		
		
				
						
								
										VK_DIVIDE 
								
								表示键盘上
								
								
								“
								
										/
								
								”键。
						
				
		
		
				
						
								
										VK_DOWN 
								
								表示键盘上
								
								
								“向下箭头”键。
								
										
										
								
						
				
		
		
				
						
								
										VK_END 
								
								表示键盘上
								
								
								“
								
										END
								
								”键。
								
										
										
								
						
				
		
		
				
						
								
										VK_ENTER 
								
								表示键盘上
								
								
								“
								
										ENTER
								
								”键。
						
				
		
		
				
						
								
										VK_EQUALS 
								
								表示键盘上
								
								
								“=”键。
						
				
		
		
				
						
								
										VK_ESCAPE 
								
								表示键盘上
								
								
								“
								
										ESC
								
								”键。
						
				
		
		
				
						
								
										VK_F1 
								
								到
								
										VK_F12
								
								表示键盘上
								
								
								“
								
										F1
								
								”到“
								
										F12
								
								”键。
						
				
		
		
				
						
								
										VK_HOME 
								
								表示键盘上
								
								
								“
								
										HOME
								
								”键。
						
				
		
		
				
						
								
										VK_INSERT 
								
								表示键盘上
								
								
								“
								
										INSTERT
								
								”键。
						
				
		
		
				
						
								
										VK_LEFT 
								
								表示键盘上
								
								
								“向左箭头”键。
						
				
		
		
				
						
								
										VK_MULTIPLY 
								
								表示键盘上
								
								
								“
								
										*
								
								”键。
						
				
		
		
				
						
								
										VK_NUMPAD0 
								
								到
								
										VK_NUMPAD9
								
								表示数字键盘上
								
								
								“
								
										0
								
								”到“
								
										9
								
								”键。
						
				
		
		
				
						
								
										VK_OPEN_BRACKET
								
								表示键盘上
								
								
								“
								
										[
								
								”键。
								
										
										
								
						
				
		
		
				
						
								
										VK_PAGE_DOWN 
								
								表示键盘上
								
								
								“
								
										PAGE DOWN
								
								”键。
						
				
		
		
				
						
								
										VK_PAGE_UP 
								
								表示键盘上
								
								
								“
								
										PAGE UP
								
								”键。
						
				
		
		
				
						
								
										VK_PAUSE
								
								表示键盘上
								
								
								“
								
										PAUSE
								
								”键。
						
				
		
		
				
						
								
										VK_PRINTSCREEN 
								
								表示键盘上
								
								
								“
								
										PRINT SCREEN
								
								”键。
						
				
		
		
				
						
								
										VK_RIGHT 
								
								表示键盘上
								
								
								“向右箭头”键。
						
				
		
		
				
						
								
										VK_SCROLL_LOCK 
								
								表示键盘上
								
								
								“
								
										SCROLL LOCK
								
								”键。
						
				
		
		
				
						
								
										VK_SEMICOLON 
								
								表示键盘上
								
								
								“;”键。
						
				
		
		
				
						
								
										VK_SHIFT 
								
								表示键盘上
								
								
								“
								
										SHIFT
								
								”键。
						
				
		
		
				
						
								
										VK_SPACE 
								
								表示键盘上
								
								
								“
								
										SPACEBAR
								
								”键。
						
				
		
		
				
						
								
										VK_SUBTRACT
								
								表示键盘上
								
								
								“-”键。
						
				
		
		
				
						
								
										VK_TAB 
								
								表示键盘上
								
								
								“
								
										TAB
								
								”键。
						
				
		
		
				
						
								
										VK_UP 
								
								表示键盘上
								
								
								“向上箭头”键。
						
				
		
		
				
						
								用键盘在人机交互中完成对屏幕中物体位置移动的控制功能时常会用到上、下、左、右几个方向键。下面的程序可以完成对某一可视控件
								
										Object1
								
								的位置进行控制(分别按下上、下、左、右键使其分别向上、下、左、右方向移动
								
										5
								
								个屏幕单位):
						
				
		
		
				
						{
				
		
		
				
						CWnd::OnKeyDown(UINT nChar, UINT nRecpCnt, UNIT nFlages);
				
		
		
				
						Switch(nChar)
				
		
		
				
						{
				
		
		
				
						case VK_LEFT;
				
		
		
				
						
								
										
												    Object1.left=Object1.left-5;      
										//
								
								按下左键控件左移
								
										5
								
								个单位
						
				
		
		
				
						
								
										
												    break;
								
						
				
		
		
				
						case VK_RIGHT;
				
		
		
				
						
								
										
												    Object1.left=Object1.left+5;      
										//
								
								按下右键控件右移
								
										5
								
								个单位
						
				
		
		
				
						
								
										
												    break;
								
						
				
		
		
				
						case VK_UP;
				
		
		
				
						
								
										
												    Object1.top=Object1.top-5;      
										//
								
								按下上键控件上移
								
										5
								
								个单位
						
				
		
		
				
						
								
										
												    break;
								
						
				
		
		
				
						case VK_DOWN;
				
		
		
				
						
								
										
												    Object1.top=Object1.top+5;      
										//
								
								按下下键控件下移
								
										5
								
								个单位
						
				
		
		
				
						
								
										
												    break;
								
						
				
		
		
				
						defult:
				
		
		
				
						
								
										
												    break;
								
						
				
		
		
				
						}
				
		
		
				
						}
				
		
		
				
						
								
										
												2.
										
								
								对鼠标的响应
						
				
		
		
				
						
								
										VC
								
								中对鼠标的响应常用的有以下事件:
						
				
		
		
				
						
								
										
												    
												a. OnLButtonDblClk
										
								
								:语法为
								
										void Object1 Wnd
								
								::
								
										OnLButtonDblClk( UINT nFlags, CPoint point ){}
								
								,表示控件对双击鼠标左键时的响应。
						
				
		
		
				
						
								
										
												    
												b. OnLButtonDown
										
								
								:语法为
								
										void Object1 Wnd
								
								::
								
										OnLButtonDown( UINT nFlags, CPoint point ){}
								
								,表示控件对按下鼠标左键时的响应。
						
				
		
		
				
						
								
										
												    
												c. OnLButtonUp
										
								
								:语法为
								
										void Object1 Wnd
								
								::
								
										OnLButtonUp( UINT nFlags, CPoint point ){}
								
								,表示控件对按下的鼠标左键放开后的响应。
						
				
		
		
				
						
								
										
												    d. OnRButtonDblClk
								
								:语法为
								
										void Object1 Wnd
								
								::
								
										OnRButtonDblClk( UINT nFlags, CPoint point ){}
								
								,表示控件对双击鼠标右键时的响应。
						
				
		
		
				
						
								
										
												    e. OnRButtonDown
								
								:语法为
								
										void Object1 Wnd
								
								::
								
										OnRButtonDown( UINT nFlags, CPoint point ){}
								
								,表示控件对按下鼠标右键时的响应。
						
				
		
		
				
						
								
										f. OnRButtonUp
								
								:语法为
								
										void Object1 Wnd
								
								::
								
										OnRButtonUp( UINT nFlags, CPoint point ){}
								
								,表示控件对按下的鼠标右键放开后的响应。
						
				
		
		
				
						
								其中的参数
								
										nFlags
								
								用于指示按下的键的代码,它可以是下面的几个值或它们的组合:
						
				
		
		
				
						
								
										
												    MK_CONTROL   
								
								表示按下
								
										CTRL
								
								键
								
								
								;
						
				
		
		
				
						
								
										
												    MK_LBUTTON   
								
								表示按下鼠标左键;
						
				
		
		
				
						
								
										
												    MK_MBUTTON   
								
								表示按下鼠标中键;
						
				
		
		
				
						
								
										
												    MK_RBUTTON   
								
								表示按下鼠标右键;
						
				
		
		
				
						
								
										
												    MK_SHIFT       
								
								表示按下
								
										 SHIFT
								
								键;
								
										
										
								
						
				
		
		
				
						
								
										Point
								
								参数表示鼠标的光标位置相对于所在窗口的左上角的水平和垂直坐标值。
						
				
		
		
				
						
								在
								
										VC
								
								中用鼠标响应事件来完成人机交互中的控制功能是比较容易的。例如把一个控件
								
										Object1
								
								的位置移动到鼠标光标的位置,下面简单的程序就可完成:
						
				
		
		
				
						void Object1::OnLButtonDown(UINT nFlags, CPoint point)
				
		
		
				
						{
				
		
		
				
						
								
										CPoint Position
								
								;
						
				
		
		
				
						Position = point;
				
		
		
				
						Object1->left=Position.x;
				
		
		
				
						
								
										Object1->top=Position.y;
										 //
								
								按下鼠标左键后控件的水平和垂直方向的值分别与鼠标的光标位置一致
								
								
						
				
		
		
				
				
		
		
				
						
								
										}