Glut窗口 - MAC OSX中的菜单栏

时间:2011-07-14 08:56:44

标签: c++ macos opengl glut

当使用过剩(glutCreateWindow(“title”)创建窗口时,有没有办法删除MAC OSX中的菜单栏项?)?

还是有其他替代方法可以使用C / C ++和过剩来为OSX中的OpenGL创建(无菜单)窗口吗?

2 个答案:

答案 0 :(得分:3)

过剩是在Mac OSX上创建菜单栏项甚至键盘快捷键(只需尝试Command + S,你就会感到惊讶......)。没有访问Cocoa就没有简单的方法来删除这些东西。 此处的GLUT源代码显示了所有这些内容的实现位置:

http://developer.apple.com/library/mac/#samplecode/glut/Introduction/Intro.html

为了摆脱GLUT中的菜单,您必须执行以下操作:

  1. #include“Cocoa / Cocoa.h”在main.cpp文件中。
  2. 右键单击main.cpp文件,选择“获取信息”,然后在“常规”选项卡中将“文件类型”设置为sourcecode.cpp.objcpp
  3. 在您的xcode项目中包含Cocoa框架
  4. 在glutInit()之后添加以下代码:

    if (NSApp){
        NSMenu      *menu;
        NSMenuItem  *menuItem;  
    
        [NSApp setMainMenu:[[NSMenu alloc] init]];
    
    menu = [[NSMenu alloc] initWithTitle:@""];
    [menu addItemWithTitle:@"About..." action:@selector(orderFrontStandardAboutPanel:) keyEquivalent:@""]; 
    
    menuItem = [[NSMenuItem alloc] initWithTitle:@"Apple" action:nil keyEquivalent:@""];
    [menuItem setSubmenu:menu];
    [[NSApp mainMenu] addItem:menuItem];
    [NSApp setAppleMenu:menu];
    }
    
  5. 代码来自Tom de Grunt,来自:http://www.degrunt.net/2010/09/22/using-nsmenu-outside-the-nib/

    这将设置您的应用程序,只有菜单中的“关于...”按钮,其中包含您的应用程序名称。只是删除菜单会导致崩溃,因为GLUT需要一个菜单​​,并为此注册了一个回调。

    我在网络上搜索以获得答案,并希望这会帮助遇到同样问题的其他人。

答案 1 :(得分:0)

Glut与菜单栏无关。您可以做的是使用glutFullscreen()将应用程序置于全屏,然后在Glut窗口中定义多个视口以模拟您自己的窗口。