简介
在许多程序种你需要处理键盘输入。本教程将解释如何捕获从键盘发来的消息。
如果您使用GLUT|ES, 请咨询 GLUT 如何使用OpenGL ES利用键盘输入。和本文的代码是类似的。另外,您可以下载此页面底部的源代码。GLUT|ES 库有个问题,整个屏幕被OpenGL ES 窗口占据。这个窗口隐藏了键盘弹出按钮。这很可能会导致您不常使用键盘输入。
第一步是建立一个函数,将用来处理所有键盘输入。此函数含有如下参数。
第一个参数必须接受一个ugwindow类型变量
第二个参数必须是整数。这表示哪个键被按下了。
第三个和第四个参数也必须是整数 。这表示当这个键被按下时,定点设备的x和y的值。
void keyboard(UGWindow uwin, int key, int x, int y)
{
我们检查哪个键按下
switch(key)
{
您可以从下面的示例中比较出任何字母键值。如果一个小写q被按下,将会退出程序。
case 'q' : exit(0); break;
特殊的键值也被列在下表中:
Identifier | Description |
UG_KEY_F1 - UG_KEY_F2 | F1 through F12 keys. |
UG_KEY_LEFT | Left arrow |
UG_KEY_RIGHT | Right arrow |
UG_KEY_UP | Up arrow |
UG_KEY_DOWN | Down arrow |
UG_KEY_PAGE_UP | Page Up key |
UG_KEY_PAGE_DOWN | Page Down key |
UG_KEY_HOME | Home key |
UG_KEY_END | End key |
UG_KEY_INSERT | Insert key |
下面,我们示范如果上箭头键按下退出程序.
case UG_KEY_UP : exit(0); break; } }
窗口需要知道我们用什么函数来处理按键因此我们按照ugDisplayFunc函数一样调用 ugKeyboardFunc函数。 这个函数使用 OpenGL 窗口的句柄作为它的第一个参数,keyboard 函数作为它的第二个参数。
ugKeyboardFunc(uwin, keyboard);
你现在应该能处理键盘消息了。如果你运行这个程序,你还是看不到任何图像,但是你可以通过按q键或者向上键退出程序。
Please let me know of any comments you may have : Contact Me
GLUT|ES Source Files : | ![]() | |
UG Source Files : | ![]() |