zoukankan      html  css  js  c++  java
  • 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

      }

    }

  • 相关阅读:
    题解 CF577B 【Modulo Sum】
    题解 P2827 【蚯蚓】
    题解 P1219 【八皇后】
    flash小实验
    URL编解码
    速记:两个进程模拟模态窗口
    youtube weburl后缀
    给ListView的条目自绘边框
    flash全屏在Activex控件上和在Google chrome插件上的区别
    ListView的消息钩子
  • 原文地址:https://www.cnblogs.com/IAMSailorMoon/p/14722703.html
Copyright © 2011-2022 走看看