我用的glfw 3.2.1,翻了glfw3.h裡面並沒有提供更改選單欄的api。但是我們可以用最傳統的win32 api setmenu來實現。
呼叫win32 api首先需要獲取hwnd。這裡有兩個方法:
方法1:getactivewindow
hwnd hwnd=getactivewindow();
方法2:使用glfwgetwin32window
這個函式在glfw3.h裡面是沒有的,宣告在glfw3native.h裡面。首先新增宣告:
#define glfw_expose_native_win32
#include
前面的define必須要。
之後即可獲取hwnd:
hwnd hwnd=glfwgetwin32window(window);
1.新建資源,新增menu。
2.之後包含resource.h:
#include "resource.h"
3.之後在glfwcreatewindow之後,訊息迴圈之前加入:
hinstance hinst = (hinstance)getwindowlong(hwnd, gwl_hinstance);
hmenu hmenu = loadmenu(hinst, makeintresource(idr_menu1));
setmenu(hwnd, hmenu);
即可。
效果如圖:
參考:
3 新增選單
每個應用程式都應該有乙個選單欄和乙個狀態列。讓我們將它們新增到我們的 python view plain copy self createstatusbar filemenu wx.menu infomation about this program close program menubar wx...
動態新增選單
動態新增選單 是在原有的選單欄中用程式新增子選單,而不是視覺化操作 在 mainframe 裡面的oncreate 函式裡面 注意 在 resource.h 中新增資源 id定義 define idm hello 111 建立資源 id,只是為了後面新增選單命令響應函式 演算法 s1 建立乙個空的彈...
Dialog Based新增選單步驟
1.建立基於對話方塊的工程 2.選擇insert resource 新增 menu資源 3.新增選單的內容 主選單項 主選單無 id 下拉列表項 新增id,在5中新增函式 4.選單關聯對話方塊 右鍵對話方塊選擇properties,在menu中選擇對話方塊要關聯的選單id即可 5.新增選單響應 開啟...