OPENGL中和鼠标、键盘事件有关的函数

1. void glutMotionFunc(void (*func)(int x, int y))

当鼠标在窗口中按下并移动时调用glutMotionFunc注册的回调函数,x和y为按下鼠标时鼠标的位置

2. void glutPassiveMotionFunc(void (*func)(int x, int y))

当鼠标在窗口中移动时调用glutPassiveMotionFunc注册的回调函数。x,y:鼠标按下式,光标相对于窗口左上角的位置,以像素为单位。

3. void glutKeyboardFunc(void(*func)(unsigned char key,int x,int y))

这个函数可以用来处理键盘上可以用ascii码表示的键按下的事件,key就是这个键ascii码,x和y则是键摁下时鼠标相对于窗口左上角的位置。

4. void glutSpecialFunc(void (*func)(int key,int x,int y))

这个函数是用来处理一些特殊键(如:F1,F2,etc)摁下的事件。参数key是这个键编号,在glut.h中预定义了这些常量:

#define GLUT_KEY_F1          1
#define GLUT_KEY_F2          2
#define GLUT_KEY_F3          3

还有很多被预定义的按键,可以在glut.h文件中查看,或者直接输出按键值进行查看。同样,x和y也是当前鼠标的位置。

5. void glutMouseFunc(void(*func)(int button,int state,int x,int y))

这个函数用来处理鼠标左右键和中键摁下的事件。其中button保存的是摁下的鼠标键的键位信息。在glut.h中,有定义:

#define GLUT_LEFT_BUTTON    0
#define GLUT_MIDDLE_BUTTON  1
#define GLUT_RIGHT_BUTTON    2

#define GLUT_DOWN        0
#define GLUT_UP          1

参数state表示这个事件发生是这个键是摁下还是松开。
参数x和y则表示当前鼠标的位置。

6. void glutPassiveMotionFunc(void (*func)(int x,int y))

这个函数是处理当没有鼠标键摁下时,鼠标拖动的事件。当鼠标拖动时,将每一帧都调用一次这个函数。

7. void glutEntryFunc(void(*func)(int state))

这个函数则是处理鼠标离开和进入窗口的事件。参数state的值在glut.h中有定义:

#define GLUT_LEFT        0
#define GLUT_ENTERED      1

8. int glutGetModifiers(void)

这个函数的返回值是三个glut.h里预定义的常量里的一个,或它们的或组合。这三个常量是:

GLUT_ACTIVE_SHIFT: 返回它,当按下SHIFT键或以按下CAPS LOCK,注意两者同时按下时,不会返回这个值。
GLUT_ACTIVE_CTRL: 返回它,当按下CTRL键。
GLUT_ACTIVE_ATL:返回它,当按下ATL键
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值