LoadMenuIndirect

来源:互联网 发布:网络电话机终端 编辑:程序博客网 时间:2024/05/01 01:53


// 菜单栏创建

HMENU LoadMenuIndirect(        
 CONST MENUTEMPLATE *lpMenuTemplate
);


typedef struct {
    WORD versionNumber;
    WORD offset;
} MENUITEMTEMPLATEHEADER, *PMENUITEMTEMPLATEHEADER;


typedef struct {
    WORD mtOption;
    WORD mtID;
    WCHAR mtString[1];
} MENUITEMTEMPLATE, *PMENUITEMTEMPLATE;


 const WORD menu_template[] =
 {
  0, // versionNumber   version number; must be zero
  0, // offset          offset first MENUITEMTEMPLATE structure
  //// MENUITEMTEMPLATE ////

  // 第一个菜单, 结尾需要加 MF_HILITE
  MF_POPUP | MF_STRING, L'F', L'i', L'l', L'e', L'(', L'&', L'F', L')', 0,
  MF_INSERT | MF_STRING, IDM_OPEN, L'&', L'O', L'p', L'e', L'n', 0,
  MF_INSERT | MF_STRING, IDM_SAVE, L'&', L'S', L'a', L'v', L'e', 0,
  MF_INSERT | MF_STRING, IDM_SAVE, L'&', L'S', L'a', L'v', L'e', 0,
  MF_INSERT | MF_STRING, IDM_SAVE, L'&', L'S', L'a', L'v', L'e', 0,
  MF_SEPARATOR, 0, 0,                                              
  MF_INSERT | MF_STRING | MF_HILITE, IDM_QUIT, L'終', L'了', L'(', L'&', L'Q', L')', 0, 
 
  
  // 第二个菜单, 结尾需要加上MF_HILITE
  MF_POPUP | MF_STRING , L'表', L'示', L'(', L'&', L'V', L')', 0,
  MF_INSERT | MF_STRING, IDM_SAVE, L'测', L'试', 0,
  MF_SEPARATOR, 0, 0,                         
  MF_INSERT | MF_STRING | MF_HILITE, IDM_FSCREEN,   L'全', L'画', L'面', L'表', L'示', 0,      


  // 开始和结尾都加上MF_HILITE, 标识最后一个菜单
  MF_POPUP | MF_STRING | MF_HILITE, L'表', L'示', L'(', L'&', L'V', L')', 0,               
  MF_INSERT | MF_STRING | MF_HILITE, IDM_FSCREEN,   L'全', L'画', L'面', L'表', L'示', 0,      
   
 }; 
 
 
 HMENU hMenu = ::LoadMenuIndirect(menu_template);