过剩弹出菜单
Posted
技术标签:
【中文标题】过剩弹出菜单【英文标题】:GLUT pop-up menus 【发布时间】:2008-08-18 09:22:49 【问题描述】:为我的 OpenGL 应用程序创建 GLUT 弹出菜单是否容易?如果是,怎么做?
【问题讨论】:
【参考方案1】:使用 GLUT 创建和使用弹出菜单非常简单。下面是一个创建带有 4 个选项的弹出菜单的代码示例:
// Menu items
enum MENU_TYPE
MENU_FRONT,
MENU_SPOT,
MENU_BACK,
MENU_BACK_FRONT,
;
// Assign a default value
MENU_TYPE show = MENU_BACK_FRONT;
// Menu handling function declaration
void menu(int);
int main()
// ...
// Create a menu
glutCreateMenu(menu);
// Add menu items
glutAddMenuEntry("Show Front", MENU_FRONT);
glutAddMenuEntry("Show Back", MENU_BACK);
glutAddMenuEntry("Spotlight", MENU_SPOT);
glutAddMenuEntry("Blend 'em all", MENU_BACK_FRONT);
// Associate a mouse button with menu
glutAttachMenu(GLUT_RIGHT_BUTTON);
// ...
return;
// Menu handling function definition
void menu(int item)
switch (item)
case MENU_FRONT:
case MENU_SPOT:
case MENU_DEPTH:
case MENU_BACK:
case MENU_BACK_FRONT:
show = (MENU_TYPE) item;
break;
default:
/* Nothing */
break;
glutPostRedisplay();
return;
【讨论】:
这个菜单是在第一次点击时出现,第二次点击时消失,还是在按下时出现,在释放时消失?以上是关于过剩弹出菜单的主要内容,如果未能解决你的问题,请参考以下文章