首页 文章

如何在mfc中动态添加子菜单

提问于
浏览
-2

我已经使用资源编辑器在我的Windows程序中添加了一个菜单,现在我想在某些特定条件下添加一个子菜单 . 下面是我的代码 .

这是我的 Menu.h 文件

包括

class CmainWn:public CFrameWnd

{

public:CmainWn();

DECLARE_MESSAGE_MAP()

afx_msg void OnAB();

};

class CApp:public CWinApp

{

public:BOOL InitInstance();

};

这是我的 Menu.cpp

包括“Menu.h”

包括“resource.h”

CmainWn :: CmainWn()

{

Create(NULL,"Menu Testing",WS_OVERLAPPEDWINDOW,rectDefault,NULL,(LPCTSTR)IDR_MENU1);

}

BOOL CApp :: InitInstance()

{

m_pMainWnd=new CmainWn();

m_pMainWnd->ShowWindow(m_nCmdShow);

m_pMainWnd->UpdateWindow();

return true;

}

void CmainWn :: OnAB()

{

AfxMessageBox("Hello");

}

BEGIN_MESSAGE_MAP(CmainWn,CFrameWnd的)

ON_COMMAND(ID_A_B, &CmainWn::OnAB)

END_MESSAGE_MAP()

CApp App;

正如你可以看到代码我创建了一个名为A的主菜单和一个名为B的子菜单 . 我想在B下动态添加一个菜单 . 怎么做?

1 回答

  • -2

    必须添加到Windows资源文件(projectname.rc)的示例代码

    IDR_MENU1 MENU 
    BEGIN
          POPUP "Main menu"
           BEGIN
               MENUITEM "Menu Item 1", ID_WINDOWS_TEST
               POPUP "Sub Menu"
            BEGIN
                MENUITEM "Sub Menu item 1",ID_WIN_TEXT
            END
        END
    END
    

    在资源视图中查看此内容将显示如下内容
    enter image description here

相关问题