一、一级菜单
1.创建主菜单
glutCreateMenu(mainMenu); //创建主菜单,并使用回调函数mainMenu
glutAddMenuEntry("MenuItem1", 1); //加入菜单项
glutAddMenuEntry("MenuItem2", 2);
glutAttachMenu(GLUT_RIGHT_BUTTON); //把菜单与鼠标右键相关联,则点击右键会出现菜单
2.菜单回调函数
void mainMenu(int id)
{
switch(id)
{
case 1:
//...
case 2:
//...
}
}
2.1. id为添加到该菜单的项的id号,如:点击了MenuItem这项,则会把id = 1 传递给回调函数mainMenu执行相关处理。
二、级联菜单
int subMenu1 = glutCreateMenu(subMenu1Func);<span style="white-space:pre"> </span>//建立subMenu1菜单,注册subMenu1Func函数,返回subMenu1的一个记号
glutAddMenuEntry("subItem1", 1);<span style="white-space:pre"> </span>//建立subMenu菜单的子项
glutAddMenuEntry("subItem2", 2);
glutCreateMenu(mainMenu);<span style="white-space:pre"> </span>//建立主菜单
glutAddMenuEntry("mainItem1", 1);
glutAddMenuEntry("mainItem2", 2);
glutAddSubMenu("subMenu", subMenu1);<span style="white-space:pre"> </span>//将subMenu添加到mainMenu中
glutAttachMenu(GLUT_RIGHT_BUTTON);