GLFW獲取HWND和新增選單欄方法

2021-09-12 21:17:37 字數 894 閱讀 8057

我用的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.新增選單響應 開啟...