[译]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 以下代码使用了位图字 ...
随机推荐
- symbol(s) not found for architecture arm64
问题如下: 解决:更改环境 ok Standard architectures (armv7, arm7s)
- linux-系统资源查看-静态
查看系统版本:lsb_release -a 查看cpu:lscpu 查看内存:free -m (free -g 单位是GB) 查看硬盘空间情况df -h
- MySQL索引,MySQL性能分析及explain的使用,分析SQL查询性能
可以使用explain来分析MySQL查询性能,举例如下: 1.使用explain语句去查看分析结果 如 explain select * from test1 where id=1; 会出现: id ...
- c#异步线程:同步调用,异步调用,异步回调
定义一个异步线程类: public class AsyEventClass { private static ILog logger = LogManager.GetLogger(MethodBase ...
- DoTween 部分中文文档
前言 DOTween现在还处于 alpha,所以还有一些缺失的功能(如路径插件,附加回调和其它的tween选项),这个文档在不久的将来可能会改变. 一.术语 Tweener 一个tween控制valu ...
- 了解RxJava以及如何在Android应用中使用它
如果你在阅读这篇文章,相信你一定很想了解RxJava以及如何在Android应用中使用它.可能你已经见过RxJava的代码了,但仍然有些疑惑,愿你能在这篇文章里找到答案. 当我第一次使用RxJava的 ...
- VUE -- 安装新模块
- org.apache.hadoop.ipc.RemoteException: User: root is not allowed to impersonate root
修改 core-site.xml文件 vim /usr/local/hadoop/etc/hadoop/core-site.xml 增加: <property> <name>h ...
- linux文件测试操作
1.文件测试操作 返回 true 如果... -e 文件存在 -a 文件存在 这个选项的效果与-e 相同.但是它已经被弃用了,并且不鼓励使用 -f file 是一个 regular 文件(不是目录或者 ...
- How to dynamically load directive into page
https://stackoverflow.com/questions/23556398/how-to-dynamically-load-directive-into-page I have an h ...