西交 博士 国家奖学金:vc中如何响应键盘和鼠标事件(2

来源:百度文库 编辑:偶看新闻 时间:2024/04/29 18:24:51

对鼠标的响应

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; // 按下鼠标左键后控件的水平和垂直方向的值分别与鼠标的光标位置一致