过剩弹出菜单

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;

【讨论】:

这个菜单是在第一次点击时出现,第二次点击时消失,还是在按下时出现,在释放时消失?

以上是关于过剩弹出菜单的主要内容,如果未能解决你的问题,请参考以下文章

CSS弹出菜单问题

vs2005中如何添加鼠标右键弹出菜单

MFC对话框中如何响应弹出式菜单事件 点击按钮 弹出菜单 菜单消息事件响应不了

android如何弹出一个占屏幕一半的菜单

关于MFC主菜单和右键弹出菜单

如何设置secureCRT的鼠标右键为弹出文本操作菜单功能