将下拉菜单按钮添加到CMFCToolbar,而不是查看菜单

时间:2016-04-13 14:12:36

标签: drop-down-menu cmfctoolbar

我试着按照我能找到的所有例子,但是我错过了一些东西,所以我会把所有的部分放在这里让其他人查看。仅供参考 - 我正在修改MFC Feature Pack示例Slider。

如果我选择按钮(单击),我会看到图层按钮(不是字符串或向下箭头)我看到按下动作并使用按钮的ID进入OnLayers()函数。我几乎看起来像ReplaceButton()什么也没做。

有什么想法吗?

由于

对于工具栏,我添加了ID_LAYERS_1

public static String loadResource(String image){
         String url =  "com/SnakeGame/Images/"+image;
         return url;
     }

我的菜单是

IDR_MAINFRAME TOOLBAR 16, 15
BEGIN
    BUTTON      ID_FILE_NEW
    BUTTON      ID_FILE_OPEN
    BUTTON      ID_FILE_SAVE
    SEPARATOR
    BUTTON      ID_SLIDER
    SEPARATOR
    BUTTON      ID_EDIT_CUT
    BUTTON      ID_EDIT_COPY
    BUTTON      ID_EDIT_PASTE
    SEPARATOR
    BUTTON      ID_FILE_PRINT
    SEPARATOR
    BUTTON      ID_APP_ABOUT
    SEPARATOR
    BUTTON      ID_LAYERS_1
END

和代码

IDR_LAYERS MENU
BEGIN
    POPUP "Layers"
    BEGIN
        MENUITEM "0",                           ID_LAYERS_1
        MENUITEM "1",                           ID_LAYERS_2
        MENUITEM "2",                           ID_LAYERS_3
    END
END

1 个答案:

答案 0 :(得分:0)

我认为你是以错误的方式使用它。试试这个:

CMenu menu;
VERIFY(menu.LoadMenu(IDR_LAYERS));

CString str;

str.LoadString (IDS_TEXT_OF_YOUR BUTTON);
m_wndToolBar.ReplaceButton (ID_LAYERS1, 
    CMFCToolBarMenuButton ( (UINT)-1, menu, 
                GetCmdMgr ()->GetCmdImage (ID_LAYERS1), str,TRUE));