Win32学习笔记 - 菜单相关函数(一)

1、CreateMenu()

HMENU CreateMenu(VOID);
  • 功能
      该函数创建一个弹出式菜单。此菜单最初是空的,但可用函数InsertMenultem,AppendMenu,和lnsertMenu来填入菜单项。

  • 参数:无。

  • 返回值:
      如果函数调用成功,返回值是新创建菜单的句柄。如果函数调用失败,返回值是NULL。若想获得更多的错误信息,请调用GetLastError函数。

2、AppendMenu()

BOOL AppendMenu(
        hMenu hMenu,// 菜单句柄
        UINT uFlags,// 菜单项的风格
        UINT uIDNewltem,// 菜单项的ID或下拉菜单的句柄
        LPCTSTR lpNewltem// 菜单项的文字信息
    );
  • 功能
      该函数在指定的菜单条、下拉式菜单、子菜单或快捷菜单的末尾追加一个新菜单项。此函数可指定菜单项的内容、外观和性能。函数AppendMenu己被lnsertMenultem取代。但如果不需要lnsertMenultem的扩展特性,仍可使用AppendMenu。
  • 返回值:
      如果函数调用成功,返回非零值;如果函数调用失败,返回值是零。若想获得更多的错误信息,请调用GetLastError函数。

  • 可被设置在参数uFlags里的标志

    • MF_BITMAP:将一个位图用作菜单项。参数lpNewltem里含有该位图的句柄。
    • 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:指定菜单项是一个正文字符串;参数lpNewltem指向该字符串。
    • MF_UNCHECKED:不放置选取标记在菜单项旁边(缺省)。如果应用程序提供一个选取标记位图(参见SetMenultemBitmaps),则将选取标记位图放置在菜单项旁边。

3、InsertMenu()

BOOL InsertMenu(
        HMENU hMenu,// 菜单句柄
        UINt uPosition,//插入菜单的位置
        UINT uFlags,//菜单的风格
        UINT uIDNewltem,//菜单项的ID或下拉菜单的句柄
        LPCTSTR lpNewltem//菜单项的文字信息
    );
  • uPosition:指定新菜单项将被插入其前面的菜单项,其含义由参数uFlagS决定。
  • uFlags:
    • MF_BYCOMMAND:表示uPosition给出菜单项的标识符。如果MF_BYCOMMAND和MF_BYPOSITION都没被指定,则MF_BYCOMMAND为缺省的标志。
    • MF_BYPOSITION:表示uPosition给出新菜单项基于零的相对位置。如果uPosition为OxFFFFFFFF新菜单项追加于菜单的末尾。
  • 其他参数同AppendMenu()函数

4、SetMenu()

BOOL SetMenu(HWND hWnd,HMENU hMenu);
  • 函数功能:该函数分配一个新菜单到指定窗口。
  • 参数:
    • hWnd:菜单被分配到其中的窗口的句柄。
    • HMenu:新菜单的句柄。如果菜单参数为NULL,则窗口的当前菜单被删除。
  • 返回值:如果函数调用成功,返回非零值;如果函数调用失败,返回值是零。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值