Win32 SDK Gui编程系列之--创建菜单

菜单的概要在“Windows编程的基础”中提到了。在这里,对菜单的制作进行更详细的说明。

1.菜单的制作

菜单将数据设置在下面的MENUITEM结构中,用InsertMenuItem函数创建。

typedef struct tagMENUITEMINFO {                                        fMask 
   UINT    cbSize;        // 结构体的大小                         -- 
   UINT    fMask;         // 设置、变更用标志                     -- 
   UINT    fType;         // 菜单项目的种类                       MIIM_TYPE 
   UINT    fState;        // 菜单项目的状态                       MIIM_STATE 
   UINT    wID;           // 应用程序定义的16位值                 MIIM_ID 
   HMENU   hSubMenu;      // 副菜单的句柄,如果没有NULL            MIIM_SUBMENU 
   HBITMAP hbmpChecked;   // 检查用图像的句柄                     MIIM_CHECKMARKS 
   HBITMAP hbmpUnchecked; // 检查用图像的句柄                     MIIM_CHECKMARKS 
   DWORD   dwItemData;    // 与项目挂钩的应用程序定义值            MIIM_DATA 
   LPTSTR  dwTypeData;    // 以空字符结尾的字符串                  MIIM_STRING 
   UINT    cch;           // dwTypeData的长度                     MIIM_STRING 
   HBITMAP hbmpItem;      // 显示的位图句柄                        MIIM_BITMAP 
} MENUITEMINFO, *LPMENUITEMINFO; 

程序示例及其执行结果如下所示。在程序中写成&X、&A等时,X、A被称为快捷键,按Alt键的话,菜单上的X、A会出现下划线(下划线)。在这个状态下输入X或A的话,会和用鼠标点击那个菜单项目一样。

分离器是分隔线。因为颜色很浅所以不显眼,但是右图上显示了隔断线。
Win32 SDK Gui编程系列之--创建菜单_第1张图片

2.层次菜单

在子菜单上再有子菜单也很简单。"Menu 1.

2”中包含儿童菜单“Menu 1.2.1”和“Menu 1.2.2”的程序如下所示。

把“Menu 1.2”设置为与“Menu 1”、“Menu 2”相同的弹出式菜单就可以了。“Menu 1”和“Menu 2”的父菜单的手柄是hMenu,而“Menu 1.2”的父菜单的手柄是hSubMenu1。

你可能感兴趣的:(Win32,SDK,Gui,C/C++,C,工具,windows,c++,开发语言)