• MFC动态添加菜单选项


    // 加载指定菜单

    CMenu menu;

    menu.LoadMenuA(ID_MENU);

    // 获取菜单栏下的第一个菜单

    pSubMenu = menu.GetSubMenu(0)

    pSubMenu->AppendMenuA(MF_STRING, ITEM_ID, "菜单选项1");  // 动态添加菜单选项

    pSubMenu->ModifyMenuA(0, MF_STRING, ITEM_ID, "修改菜单文本");  // 修改指定菜单选项文本内容

    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),则将选取标记位图放置在菜单项旁边。

    不能一起使用的标志组

    MF_DISABLED,MF_ENABLED和MF_GRAYED;MF_BITMAP,MF_STRING和MF_OWNERDRAW

    MF_MENUBARBREAK和MF_MENUBREAK;MF_CHECKED和MF_UNCHECKED

    // 在鼠标点击位置弹出菜单

    CPoint point;

    GetCursorPos(&point);

    pSubMenu->TrackPopupMenu(TPM_LEFTALIGN | TPM_LEFTBUTTON, point.x, point.y, this);

    pSubMenu->DestroyMenu();

    menu.DestroyMenu();

    // 给动态添加的菜单选项添加消息响应(类向导添加虚函数OnCommand)

    BOOL MyWnd::OnCommand(WPARAM wParam, LPARAM lParam)

    {

      UINT uMsg = LOWORD(wParam);

      if(uMsg == ITEM_ID)

      {

        // do something

      }

    }

  • 相关阅读:
    【Python】在控制台输出不同颜色的文字
    【python】如何去掉使用BeautifulSoup读取html出现的警告UserWarning: You provided Unicode markup but also provided a value for from_encoding
    【nodejs】修改了下对股票表进行crud操作的代码
    【nodejs】用express又做了份crud
    day20_day23课堂笔记
    Myeclipse中java web.xml报错cvc-complex-type.2.3: Element 'web-app' cannot have character [children], because the type's content type is element- only.
    html中让input标签只读不可编辑的方法
    Win10锁屏壁纸位置在哪? 默认锁屏壁纸怎么提取?
    Potplayer怎么实现视频的镜面翻转?
    How to export Excel files in a Python/Django application
  • 原文地址:https://www.cnblogs.com/IAMSailorMoon/p/14722703.html
Copyright © 2020-2023  润新知