2015-09-17 49 views
3

我在看有時候你右鍵點擊的時候,菜單不在窗口之內。如何實現窗口外的opengl菜單?

這是用一個單獨的窗口實現的嗎?如果是這樣,我怎麼才能得到這個功能。我正在嘗試使用GLFW,但我明白如果這不可能。

目前我在Windows上,但我喜歡保持我的選項打開,這就是爲什麼GLFW會更好。

我注意到GLUT有這樣的功能。如果你對我正在看的東西感到困惑,那就看看那個。

感謝您的任何幫助!

回答

4

重疊菜單(在MS Windows中)必須作爲一個新的頂層窗口來實現,您將擁有一個新的OpenGL渲染上下文並在該空間中繪製菜單 - 是的,這完全是爲了不過這在OpenGL編程中並不常見,因爲如果您正在進行全屏遊戲,那麼菜單將始終顯示在主窗口中,即使它不是全屏遊戲,用戶也不會注意到它們,因爲遊戲傾向於使用不同的用戶界面概念,例如不會超出父窗口的徑向菜單。

或者,如果您正在製作非遊戲標題,則很可能它不是全屏幕,並且將成爲使用本機UI工具包呈現的較大應用程序中的OpenGL渲染區域(例如3ds Max,AutoCAD等),在這種情況下沒有問題:只需使用本機菜單即可。

你可以,當然,在OpenGL應用程序中使用本機菜單反正,只要你做本地窗口消息必需的管道。

+0

在GLFW窗口中實現本地Windows上下文菜單使用'TrackPopupMenu'等等來實現。 – Rotem

+0

@rotem如果我不想原生? –

+0

@RussellGreene然後,你需要一個獨立的OpenGL上下文,或者使用菜單不能離開你的主窗口的區域。 – Rotem