EnableMenultem是一个函数。
函数功能:该函数使指定的菜单项有效、无效或变灰。
函数原型:BOOL
EnableMenutem(HMENU hMenu,UINT ulDEnablttem,UINT uEnable);
参数
hMenu:菜单句柄。
ulDEnableltem:指定将使其有效、无效或变灰的菜单项,按参数uEnable确定的含义。此
参数可指定菜单条、菜单或子菜单里的菜单项。
uEnable:指定控制参数uIDEnableltem如何解释的标志,指示菜单项有效、无效或者变灰。
此参数必须是MF_BYCOMMAND或MF_BYPOSITION,MF_ENABLED和MF_DISABLE或MF_GRAYED的
组合。
MF_BYCOMMAND:表明参数uIDEnableltem给出了菜单项的标识符。如果MF_BYCOMMAND和
MF_POSITION都没被指定,则MF_BYCOMMAND为缺省标志。
MF_BYPOSITION:表明参数uIDEnableltem给出了菜单项的以零为基准的相对位置。
MF_DISABLED:表明菜单项无效,但没变灰,因此不能被选择。
MF_ENABLED:表明菜单项有效,并从变灰的状态恢复,因此可被选择。
MF_GRAYED:表明菜单项无效并且变灰,因此不能被选择。
返回值:返回值指定菜单项的前一个状态(MF_DISABLED,MF_ENABLED或MF_GRAYED)。如果
此菜单项不存在,则返回值是OXFFFFFFFF。
备注:一个应用程序必须用MF_BYPOSITION来指定正确的菜单句柄。如果菜单条的菜单句柄
被指定,顶层菜单项(菜单条上的菜单项)将受到影响。若要根据位置来设置下拉菜单中的
菜单项或子菜单的状态,应用程序指定下拉菜单或子菜单的句柄。
当应用程序指定MF_BYCOMMAND标志时,系统在由指定菜单句柄标识的菜单里选取那些
打开了子菜单的菜单项。因此除非要复制菜单项,指定菜单条的句柄就足够了。
函数InsertMenu,InsertMenultem,
LoadMenulndirect,ModifyMenu和
SetMenultemlnfo也可设置菜单项的状态(有效、无效或变灰)。
Windows CE:Windows CE不支持参数uEnable取MF_DISABLED标志。
如果没有变灰,菜单项不能无效。要使菜单项无效,用MF_RAYED标志。
速查:Windows NT:3.1及以上版本;Windows:95的及以上版本;Windows CE:1.0及以上
版本;头文件:winuser.h;输入库:user32.lib。
2.13.8 GetMenu
函数功能:该函数取得分配给指定窗口的菜单的句柄。
函数原型:HMENU GetMenu(HWND hWnd);
参数:
hWnd:其菜单句柄被取得的窗口的句柄。
返回值:返回值是菜单的句柄。如果给定的窗口没有菜单,则返回NULL。如果窗口是一个
子窗口,返回值无定义。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:不支持;头文
件:winuser.h;输入库:user32.lib。
函数功能:该函数确定指定菜单上的缺省项。
函数原型:UINT
GetMenuDefaultltem(HMENY hMenu,UINT fByPos,UINT gmdiFlags);
参数:
hMenu:获取缺省项的菜单的句柄。
fByPos:用于确定是取得菜单项的
标识符还是位置的值。如果此参数值为FALSE,返回标识
符,否则返回位置。
gmdiFlags:指定函数如何查找菜单项。此参数可取灵或多个下列值:
GMDI_GOINTOPOPUPS:如果缺省项打开了子菜单,此函数在相应的子菜单里递归查找。如果
子菜单没有缺省项,返回值表示打开了子菜单的项。缺省情况下,函数返回指定菜单的第一
个缺省项,不管它是否打开了一个子菜单。
GMDI_USEDISABLED:指定函数返回一个缺省项,即使该项无效。缺省情况下,函数跳过无效
或变灰的项。
返回值:如果
函数调用成功,返回值是菜单项的标识符或位置;如果函数调用失败,返回值
是C1。若想获得更多的
错误信息,请调用GetLastError函数。
速查:Windows:4.0及以上版本;Windows:95及以上版本:Windows CE:不支持;头文件:
winuser.h;输入库:user32.lib。