MFC獲取選單欄的高度

2021-09-11 16:33:23 字數 574 閱讀 3815

在一些情況下,我們可能會需要獲取乙個視窗選單欄的高度。一般情況下使用下面一行**可以獲取到選單欄的高度:

int height = getsystemmetrics(sm_cymenu);
但是有乙個問題,就是當視窗寬度變小時,選單欄可能會變成兩行,如圖所示:

此時,如果使用getsystemmetrics獲取到的仍然是一行選單欄的高度,如果要獲取選單欄真實的高度,可以使用getmenubarinfo函式。**如下:

//獲取選單欄的高度

menubarinfo menuinfo{};

menuinfo.cbsize = sizeof(menubarinfo);

int menu_bar_height = 0;

if(rtn != 0)

menu_bar_height = menuinfo.rcbar.bottom - menuinfo.rcbar.top;

MFC選單欄 CMenu 控制項

1.設定選單左邊顯示點陣圖和背景位圖 cmenu類裡要了解的函式 setmenuitembitmaps 設定選單項左邊的點陣圖 函式定義 bool setmenuitembitmaps uint nposition,uint nflags,const cbitmap pbmpunchecked,co...

MFC 選單欄顯示隱藏

首先獲取程式視窗大小 在cmainframe 定義變數crect clientrect 在oncreate裡獲取客戶區大小,並隱藏選單欄 m wndcommandbar.showwindow sw hide getclientrect clientrect bool cmainframe pretr...

MFC選單欄及工具欄實現

mfc選單欄實現 在資源檢視中,右鍵工程名.rc 新增資源,選擇menu。對menu設定id,並對menu選單進行設定 即新增選單欄的名字 在c dlg.h中,新增cmenu m menu 在c dlg.c的初始化中,新增m menu.loadmenu idr menu1 idr menu1 set...