结构
typedef struct MENUITEMINFO {
UINT cbSize;
UINT fMask;
UINT fType;
UINT fState;
UINT wID;
HMENU hSubMenu;
HBITMAP hbmpChecked;
HBITMAP hbmpUnchecked;
ULONG_PTR dwItemData;
LPSTR dwTypeData;
UINT cch;
HBITMAP hbmpItem;
} MENUITEMINFOA, *LPMENUITEMINFOA;
代码
BOOL get_menuInfo(HWND hwnd,std::vector<std::wstring> &szMuneName){
HMENU h_menu = GetMenu(hwnd);
if(h_menu == NULL){
return FALSE;
}
INT ietmCount = GetMenuItemCount(h_menu);
if(ietmCount == -1){
return FALSE;
}
TCHAR szMenuStr[256] = { 0 };
MENUITEMINFO mInfo = { 0 };
mInfo.cbSize = sizeof(mInfo);
mInfo.fMask = MIIM_TYPE;
mInfo.dwTypeData = szMenuStr;
for(INT i = 0; i < ietmCount; i++){
mInfo.cch = _countof(szMenuStr);
if(GetMenuItemInfo(h_menu,i,TRUE,&mInfo) == 0)
continue;
szMuneName.push_back(mInfo.dwTypeData);
}
if (szMuneName.size() == 0)
return FALSE;
return TRUE;
}
效果图
