怎样用API函数创建菜单和子菜单
1个回答
展开全部
函数功能:该函数插入一个新菜单项到菜单里,并使菜单里其他项下移。 函数原型:BOOL InsertMenu(HMENU hMenu,UINt uPosition,UINT uFlags,UINT uIDNewltem,LPCTSTR lpNewltem); 参数: hMenu:将被修改的菜单的句柄。 uPosition:指定新菜单项将被插入其前面的菜单项,其含义由参数uFlagS决定。 uFlags:指定控制参数uPosition的解释的标志、新菜单项的内容、外观和性能。此参数必须为下列值之一和列于备注里的一个值的组合。 MF_BYCOMMAND:表示uPosition给出菜单项的标识符。如果MF_BYCOMMAND和MF_BYPOSITION都没被指定,则MF_BYCOMMAND为缺省的标志。 MF_BYPOSITION:表示uPosition给出新菜单项基于零的相对位置。如果uPosition为OxFFFFFFFF新菜单项追加于菜单的末尾。 uIDNewltem:指定新菜单项的标识符,或者当参数uFlags设置为MF_POPUP时,指定下拉式菜单或子菜单的句柄。 LpNewltem:指定新菜单项的内容。其含义依赖于参数UFlags是否包含标志MF_BITMAP,MF_OWNERDRAW或MF_STRING。如下所示: MF_BITMAP:含有位图句柄。MF_STRING:以`\0’结束的字符串的指针(缺省)。 MF_OWNERDRAW:含有被应用程序应用的32位值,可以保留与菜单项有关的附加数据。当菜单被创建或其外观被修改时,此值在消息WM_MEASURE或WM_DRAWITEM的参数IParam指向的结构中、成员itemData里。 返回值:如果函数调用成功,返回值非零;如果函数调用失败,返回值为零。若想获得更多的错误信息,请调用GetLastError函数。 备注:一旦菜单被修改,无论它是否在显示窗口里,应用程序必须调用函数DrawMenuBar。 下列标志可被设置在参数uFlagS里: MF_BITMAP:将一个位图用作菜单项。参数IpNewltem里含有该位图的句柄。 MF_CHECKED:在菜单项旁边放置一个选取标记。如果应用程序提供一个选取标记位图(参见SetMenultemBitmaps),则将选取标记位图放置在菜单项旁边。 MF_DISABLED:使菜单项无效,使该项不能被选择,但不使菜单项变灰。 MF_ENABLED:使菜单项有效,使该项能被选择,并使其从变灰的状态恢复。 MF_GRAYED:使莱单项无效并变灰,使其不能被选择。 MF_MENUBARBREAK:对菜单条的功能同MF_MENUBREAK标志。对下拉式菜单、子菜单或快捷菜单,新列和旧列被垂直线分开。 MF_MENUBREAK:将菜单项放置于新行(对菜单条),或新列(对下拉式菜单、子菜单或快捷菜单)且无分割列。 MF_OWNERDRAW:指定该菜单项为自绘制菜单项。菜单第一次显示前,拥有菜单的窗口接收一个WM_MEASUREITEM消息来得到菜单项的宽和高。然后,只要菜单项被修改,都将发送WM_DRAWITEM消息给菜单拥有者的窗口程序。 MF_POPUP:指定菜单打开一个下拉式菜单或子菜单。参数uIDNewltem下拉式菜单或子菜单的句柄。此标志用来给菜单条、打开一个下拉式菜单或子菜单的菜单项、子菜单或快捷菜单加一个名字。 MF_SEPARATOR:画一条水平区分线。此标志只被下拉式菜单、子菜单或快捷菜单使用。此区分线不能被变灰、无效或加亮。参数IpNewltem和uIDNewltem无用。 MF_STRING:指定菜单项是一个正文字符串:参数IpNewltem指向该字符串。 MF_UNCHECKED:不放置选取标记在菜单项旁边(缺省)。如果应用程序提供一个选取标记位图(参见SetMenultemBitmaps),则将选取标记位图放置在菜单项旁边。 注意要在VC中创建菜单或者各种资源,首先要建立一个
资源脚本,既在创建晚工程和源文件后,插入资源时首先
点击新建->资源脚本。这样才能创建资源。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询