最佳答案:
LoadMenu函数从与应用程序实例相联系的可执行文件(.EXE)中加载指定的菜单资源。
详情介绍
LoadMenu函数从与应用程序实例相联系的可执行文件(.EXE)中加载指定的菜单资源。

- 中文名
- LoadMenu
- 头文件
- winuser.h
- 输入库
- user32.lib
- Unicode
- 以Unicode和ANSI方式实现
LoadMenuWin32 SDK
函数功能:该
函数原型:HMENU LoadMenu(HINSTANCE hlnstance,LPCTSTR lpMenuName);
参数:
hlnstance:含有被加载菜单资源的实例模块的句柄。若此参数为NULL,则从当前实例中加载菜单。
LpMenuName:指向含有菜单资源名的以空结束的字符串的指针。同时,此参数可由低位字上的资源标识符和高位字上的零组成。要创建此值,用MAKEINTRESOURCE宏。注意,菜单ID(所有资源ID类同)也可以直接由字符串构造,如ID值为"IDM_MYMENU"(ID值含引号)
返回值:如果函数调用成功,返回值是菜单资源句柄;如果函数调用失败,返回值是NULL。若想获得更多的错误信息,请调用GetLastError函数。
备注:关闭应用程序之前,用函数DestroyMenu来销毁菜单并释放加载菜单占用的内存。Windows CE 1.0不支持层叠式菜单。Windows CE 2.0及更高版本支持层叠式菜单。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:不支持;头文件:winuser.h;输入库:user32.lib;Unicode:在Windows NT环境下,以Unicode和ANSI方式实现。
LoadMenuMFC
CMenu::LoadMenu
BOOL LoadMenu( LPCTSTR lpszResourceName );
BOOL LoadMenu( UINT nIDResource );
返回值:如果菜单资源装载成功,则返回非零值,否则为0。
参数:
lpszResourceName指向一个空终止的字符串,该字符串包含了要装载的菜单资源名称。nIDResource指定将要装载的菜单资源的菜单ID号。
|
说明:
从应用的可执行文件中装载菜单资源,并将其附加给CMenu 对象。
如果菜单没有被指定给某一窗口,那么在离开之前,应用必须释放与菜单相关联的系统资源。应通过调用DestroyMenu成员函数来释放菜单。
// CMainframe::onReplaceMenu() is a menu command handler for CMainframe
// class, which in turn is a CframeWnd-derived class. It loads a new
// menu resource and replaces the SDI application window's menu bar with
// this new menu. CMainframe is a CframeWnd-derived class.
void CMainframe::onReplaceMenu()
{
// Load the new menu.
m_NewMenu.LoadMenu(IDR_SHORT_MENU);
ASSERT(m_NewMenu);
// Remove and destroy the old menu
SetMenu(NULL);

::DestroyMenu(m_hMenuDefault);
// Add the new menu
SetMenu(&m_NewMenu);
// Assign default menu
m_hMenuDefault = m_NewMenu.GetSafeHmenu(); // or m_NewMenu.m_hMenu;}



