遍歷選單項

2021-03-31 14:02:02 字數 1153 閱讀 8665

//遍歷任何窗體的menuitem

//用了兩個多小時

//略做修改,就可以實現其他功能,getmenuiteminfo提供的資訊足夠用了

procedure explorermenuitem(menuhandle: thandle);

varmenuindex: integer;

menucaptionarray: array[1..255]  of char;

menucaptionstring: string;

iteminfo: tmenuiteminfo;

buffer: array[0..20] of char;

begin

for menuindex := 0 to getmenuitemcount(menuhandle) - 1 do begin

//something todo. here we get the caption

getmenustring(menuhandle, menuindex, @menucaptionarray, 255, mf_byposition);

menucaptionstring := menucaptionarray;

setlength(menucaptionstring,strlen(pchar(menucaptionstring)));

showmessage('menu caption: ' + menucaptionstring);

//get caption ends here.

iteminfo.cbsize := sizeof(tmenuiteminfo);

iteminfo.fmask := miim_submenu;

iteminfo.dwtypedata := buffer;

iteminfo.cch := sizeof(buffer);

getmenuiteminfo(menuhandle, menuindex, true, iteminfo);

//submenu, calls itself

if iteminfo.hsubmenu <> 0 then begin

explorermenuitem(iteminfo.hsubmenu);

end;

end;

end;

--lw549的專欄

選單項引數

引數一 選單項 引數二 mf bycommand 表明 引數一 給出了選單項的識別符號。如果mf bycommand和mf position都沒被指定,則mf bycommand為預設標誌。mf byposition 表明 引數一 給出了選單項的以零為基準的相對位置。mf disabled 表明選單...

BREW的選單項

實現幾個選單選項的顯示。brew 的訊息機制 2 case 為evt key 裡面則處理什麼按鍵被按,並進行響應處理。問題 brh bar 都可以生成,但 resource editor 不能生成 res.h。解決 1 檢查 沒錯。2 將brew sdk2.0 換成3.0 仍然如此。3 經過研究,發...

MFC自學(選單項)

一 選單的設計 選單是作為一種資源定義的,單擊 resourse view 資源檢視,在開啟的視窗裡的 menu 下就能進行視覺化編輯 二 讀取選單字串和新增操作 todo 在此新增命令處理程式 cmenu pmenu null int icout 1 操作一 讀取頂級選單名稱 pmenu cmai...