GLUT Tutorials

메뉴 교체하기

GLUT 를 사용하면 어플리케이션 실행 중에 메뉴를 통채로 바꿀 수 있습니다. glutSetMenu 함수와 glutGetMenu 함수를 사용하면 됩니다. 다음은 이 함수들의 설명입니다.:

void glutSetMenu(int menu); 

인자 설명:
menu - 만들어 놓은 메뉴의 인덱스입니다.

이 함수를 사용해서 메뉴를 교체할 수 있습니다.

다음은 glutGetMenu 함수의 설명입니다.

int glutGetMenu(void);

이 함수는 현재 메뉴의 인덱스를 반환합니다. 다음 예제는 위의 두함수를 사용해서 만든 것인데 F1 키를 누르면 메뉴가 교체됩니다.

void processSpecialKeys(int c, int x, int y)
{
    if (!flag)
    {
        if (c == GLUT_KEY_F1)
        {
            int x = glutGetMenu();
            if (x == menu1)
                glutSetMenu(menu2);
            else
                glutSetMenu(menu1);

            // 메뉴를 마우스버튼에 연결하는 것을 잊지마세요!!!
            glutAttachMenu(GLUT_RIGHT_BUTTON);
        }
    }
}

void createGLUTMenus()
{
    menu2 = glutCreateMenu(processMenuEvents);
    glutAddMenuEntry("Blue",BLUE);
    glutAddMenuEntry("Green",GREEN);
    glutAddMenuEntry("Red",RED);

    menu1 = glutCreateMenu(processMenuEvents);
    glutAddMenuEntry("Red",RED);
    glutAddMenuEntry("Green",GREEN);
    glutAddMenuEntry("Blue",BLUE);
    glutAttachMenu(GLUT_RIGHT_BUTTON);
}

Visual C 프로젝트 파일을 받아서 자세하게 살펴보세요 :)