2011-03-07 65 views
0

正常情況下應該是這樣的:如何分離器添加到右鍵菜單中的OpenGL/GLUT

glutAddMenuEntry("-", <opid>); 

但它不工作。在Google上查詢後,我無法找到關於此的很多信息,也許使用GLUT是不可能的?我發現一對夫婦的例子一樣:

glutAddMenuEntry("-", 0); 

glutAddMenuEntry("-", -1); 

但既不工作...

#include <math.h> 

#include <GL/glut.h> 

#define WINDOW_WIDTH 640 
#define WINDOW_HEIGHT 480 

void changeSize(int w, int h) { 
    if(h == 0) h = 1; 

    float ratio = 1.0 * w/h; 

    glMatrixMode(GL_PROJECTION); 
    glLoadIdentity(); 

    glViewport(0, 0, w, h); 

    gluPerspective(45.0f, ratio, 1.0f, 1000.0f); 

    glMatrixMode(GL_MODELVIEW); 
} 

void renderScene(void) { 
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 
    glLoadIdentity(); 

    gluLookAt(
     0.0, 0.0, 5.0, 
     0.0, 0.0, 0.0, 
     0.0f, 1.0f, 0.0f 
    ); 

    glutWireTeapot(1.0); 

    glutSwapBuffers(); 
} 

void processMenuEvents(int option) { 
} 

void main(int argc, char **argv) { 
    glutInit(&argc, argv); 
    glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA); 
    glutInitWindowPosition(
     (glutGet(GLUT_SCREEN_WIDTH) - WINDOW_WIDTH)/2, 
     (glutGet(GLUT_SCREEN_HEIGHT) - WINDOW_HEIGHT)/2 
    ); 
    glutInitWindowSize(WINDOW_WIDTH, WINDOW_HEIGHT); 
    glutCreateWindow("Camera Demo"); 

    glutDisplayFunc(renderScene); 
    glutReshapeFunc(changeSize); 

    glutCreateMenu(processMenuEvents); 

    glutAddMenuEntry("OPTION 1", 1); 
    glutAddMenuEntry("-", -1); 
    glutAddMenuEntry("OPTION 2", 2); 

    glutAttachMenu(GLUT_RIGHT_BUTTON); 

    glEnable(GL_DEPTH_TEST); 
    glEnable(GL_CULL_FACE); 

    glClearColor(0.0f, 0.0f, 0.0f, 0.0f); 

    glutMainLoop(); 
} 

我沒有看到像Windows分離器做其他項目,而不是我看到菜單項標籤爲短劃線。

+0

'glutAddMenuEntry(「 - 」,-1);'對我很好。你能發佈一個完整的,最簡單的程序來證明問題嗎? – genpfault 2011-03-07 20:13:00

+0

添加示例... – 2011-03-07 21:27:16

+0

不要忘記獎勵賞金! :) – Goz 2011-03-13 11:52:54

回答

2

我只是三重檢查了我所有關於GLUT的文檔:GLUT不支持菜單分隔符!你可以做的最好的是使用一些字符串「----」或類似的分隔符,並忽略此菜單項的選擇。

相關問題