0
所以,我的菜单看起来像这样:变量在子菜单文本,GLUT
typedef struct menuItemStruct {
char* item;
char val;
} menuItemStruct;
static menuItemStruct menu1[] = {
{"Switch on/off", '1'},
{"Accelerate", '2'},
{"Decelerate", '3'},
{"Widen the arc", '4'},
{"Narrow the arc", '5'}
};
int numItensMenu1 = sizeof(menu1)/sizeof(menuItemStruct);
这是我的createMenus:
void criarMenus(void)
{
int pend;
int disp;
int mainmenu;
int i;
int j;
pend=glutCreateMenu(myMenuEsq);
for(i=0; i<numItensMenu1; i++)
{
glutAddMenuEntry(menu1[i].item, i);
}
disp=glutCreateMenu(myMenuDir);
for(i=0; i<numItensMenu2; i++)
{
glutAddMenuEntry(menu2[i].item, i);
}
mainmenu = glutCreateMenu(myMenuEsq);
glutAddSubMenu("Pendulum 1", pend);
glutAddSubMenu("Display", disp);
glutAttachMenu(GLUT_RIGHT_BUTTON);
}
的事情,然而,就是数摆是一个变量,从1到10,所以我希望我的月亮能够显示摆1,摆2等,并且每个摆显示一个子菜单,包括那些你可以看到的子菜单。然而,当我提到这条线时,我输了:
glutAddSubMenu("Pendulum 1", pend);
我可以用变量替换“1”吗?例如像这样:
glutAddSubMenu("Pendulum %i", pendulumNumber, pend);
或者我必须用ifs手动执行所有这些操作吗?如果我能做到这一点,怎么样?因为上述不起作用,显然。
我无法检查它肯定的那一刻,因为我没有做摆安置尚未完成,但听起来loike一个好主意,没有想到建立一个字符串,我会按照你的建议,谢谢。 – Sheenah 2014-12-03 14:32:07
嘿,虽然有这个问题,即使我在菜单中添加更多的项目,子菜单仍然返回相同的值,我不能分配不同的操作。有什么想法呢? – Sheenah 2014-12-03 20:16:04
在循环中创建子菜单 – 2014-12-03 21:29:32