在 MFC(Microsoft Foundation Classes)中,CMenu::SetMenuInfo 是 CMenu 类的一个公共方法,用于设置菜单的信息。

以下是该方法的一般语法:
BOOL SetMenuInfo(LPCMENUINFO lpMenuInfo);

参数说明:
  •  lpMenuInfo:指向 MENUINFO 结构的指针,该结构包含了菜单的各种信息。


MENUINFO 结构的定义如下:
typedef struct tagMENUINFO {
    DWORD cbSize;
    DWORD fMask;
    DWORD dwStyle;
    UINT  cyMax;
    HBRUSH hbrBack;
    DWORD dwContextHelpID;
    ULONG_PTR dwMenuData;
} MENUINFO, *LPMENUINFO;

参数具体含义如下:
  •  cbSize:结构的大小,以字节为单位,用于指定结构的大小。

  •  fMask:用于指定 MENUINFO 结构中哪些成员包含有效信息的标志。

  •  dwStyle:菜单的样式标志。

  •  cyMax:指定菜单的最大高度。

  •  hbrBack:用于绘制菜单背景的画刷句柄。

  •  dwContextHelpID:上下文帮助标识符。

  •  dwMenuData:菜单数据,可以是应用程序定义的任何值。


返回值:
  •  如果成功设置菜单信息,则返回 TRUE;否则,返回 FALSE。


使用示例:
CMenu myMenu;
myMenu.LoadMenu(IDR_MYMENU);

MENUINFO menuInfo;
menuInfo.cbSize = sizeof(MENUINFO);
menuInfo.fMask = MIM_STYLE | MIM_BACKGROUND;
menuInfo.dwStyle = MNS_AUTODISMISS;
menuInfo.hbrBack = (HBRUSH)GetStockObject(WHITE_BRUSH);

myMenu.SetMenuInfo(&menuInfo);

这个方法允许你在运行时设置菜单的一些显示和样式属性。具体的效果和影响取决于你设置的 MENUINFO 结构的成员。


转载请注明出处:http://www.pingtaimeng.com/article/detail/18964/MFC/CMenu