[译]GLUT教程 - 交换菜单
Lighthouse3d.com >> GLUT Tutorial >> Pop-up Menus >> Swapping Menus
GLUT甚至可以在应用程序过程中更改整个菜单.提供了两个函数: glutSetMenu和glutGetMenu.原型如下:
void glutSetMenu(int menu);
menu - 上一个创建菜单的索引值
该函数可以让我们切换菜单,例如在应用程序上下文中切换.
int glutGetMenu(void);
该函数返回当前菜单的索引值.下面我们演示用户按F1时在两个菜单之间切换.
void processSpecialKeys(int c, int x, int y) {
if (!flag) {
if (c == GLUT_KEY_F1) {
int x = glutGetMenu();
if (x == menu1)
glutSetMenu(menu2);
else
glutSetMenu(menu1);
// don't forget to attach the menu!!!
glutAttachMenu(GLUT_RIGHT_BUTTON);
}
}
}
void createGLUTMenus() {
menu2 = glutCreateMenu(processMenuEvents);
glutAddMenuEntry("Blue",BLUE);
glutAddMenuEntry("Green",GREEN);
glutAddMenuEntry("Red",RED);
menu1 = glutCreateMenu(processMenuEvents);
glutAddMenuEntry("Red",RED);
glutAddMenuEntry("Green",GREEN);
glutAddMenuEntry("Blue",BLUE);
glutAttachMenu(GLUT_RIGHT_BUTTON);
}
[译]GLUT教程 - 交换菜单的更多相关文章
- [译]GLUT教程 - 修改菜单
Lighthouse3d.com >> GLUT Tutorial >> Pop-up Menus >> Modifying Menus 肯定会有菜单需要被修改的状 ...
- [译]GLUT教程 - 子菜单
Lighthouse3d.com >> GLUT Tutorial >> Pop-up Menus >> Sub Menus 上一节我们介绍了如何创建普通菜单和如果 ...
- [译]GLUT教程(目录)
http://www.lighthouse3d.com/tutorials/glut-tutorial/ GLUT是OpenGL Utility Toolkit的意思.作者Mark J. Kilgar ...
- [译]GLUT教程 - 弹出菜单基础
Lighthouse3d.com >> GLUT Tutorial >> Pop-up Menus >> Popup Menus 弹出菜单也是GLUT的一部分.虽然 ...
- [译]GLUT教程 - 游戏模式
Lighthouse3d.com >> GLUT Tutorial >> Extras >> Game Mode 根据GLUT官网的说明,GLUT的游戏模式是为开启 ...
- [译]GLUT教程 - 整合代码3
Lighthouse3d.com >> GLUT Tutorial >> Pop-up Menus >> The Code So Far III 这里我们准备包含一 ...
- [译]GLUT教程 - 创建和关闭子窗体
Lighthouse3d.com >> GLUT Tutorial >> Subwindows >> Creating and Destroying Subwind ...
- [译]GLUT教程 - 整合代码5
Lighthouse3d.com >> GLUT Tutorial >> Extras >> The Code So Far V 该代码与位图字体的代码类似.区别是 ...
- [译]GLUT教程 - 整合代码4
Lighthouse3d.com >> GLUT Tutorial >> Pop-up Menus >> The Code So Far IV 以下代码使用了位图字 ...
随机推荐
- 使用参数化SQL
Java.C#等语言提供了参数化SQL机制,使用参数化SQL开发人员为在运行时才能确定的参数值设置占位符,在执行的时候再指定这些占位符所代表的值.示例代码如下: string user=txtUser ...
- 六. 异常处理10.Java的内置异常
在标准包java.lang中,Java定义了若干个异常类.前面的例子曾用到其中一些.这些异常一般是标准类RuntimeException的子类.因为java.lang实际上被所有的Java程序引入,多 ...
- linux-系统资源查看-静态
查看系统版本:lsb_release -a 查看cpu:lscpu 查看内存:free -m (free -g 单位是GB) 查看硬盘空间情况df -h
- 常用VBA小技巧
用对话框选取文件路径(单个文件) 删除导入csv等文本文件后留下的 Data connections 增加新的工作表并并命名 Worksheets.Add(After:=Worksheets(Work ...
- Camera setParameters(), getParameters(),unlock()三个方法之间的限制关系
Camera mCamera = Camera.open(); // 第一次调用getParameters()需要在unlock()方法之前否则出现错误 Camera.Parameters param ...
- Scala各种符号含义;scala =>符号含义总结
符号: <- :for循环 -> :map映射 => :匿名函数 Int= :scala函数 _ :通配符 https://blog.csdn.net/bon_mot/article ...
- hive启动报错:system:java.io.tmpdir等
解决方法:在hive-site.xml中添加 <property> <name>system:java.io.tmpdir</name> <val ...
- 使用PowerDesigner进行代码生成
很多代码生成器都选择了从表结构来生成领域模型,这样的方案有一个前提,就是领域模型和数据库表结构是同构的,也就是说领域模型中的类和数据库中的记录结构十分吻合,这样数据库表结构可以简单的直接映射到领域模型 ...
- EffectiveJava(12)考虑实现Comparable接口
考虑实现Comparable接口 compareTo方法 Comparable接口的唯一方法,允许进行简单的等同性比较,允许执行顺序比较 Comparable接口被所有值类实现.所以如果一个值类有非常 ...
- Windows / Linux 一件编译zlib库
一. 下载zlib库 : http://www.zlib.net 本文以 zlib-.tar.xz 为例 二. 解压文件得到 zlib- 文件夹,修改 zlib-/CMakeLists.txt 文 ...