如何在应用程序中得到自己的菜单、Toolbar等资源的ID和其他属性?
并且根据需要如何动态的删除菜单项和toolbar中的按钮?

解决方案 »

  1.   

    在运行中增加或删除菜单条目(基于对话框)    ■加入代码,实现菜单条目在运行过程中的加入与删除
        ■在类 CMenuProDlg 的类定义中,加入以下代码定义一个指向 CMenu 类对象的指针。
                       ……
        类定义文件 MenuProDlg.h 中的其它代码
    class CMenuProDlg : public CDialog
    {
    // Construction
    public:
    CMenuProDlg(CWnd* pParent = NULL); // standard constructor// my code start here
    CMenu *pMenu;    // 定义一个指向 CMenu 对象的指针
        类定义文件 MenuProDlg.h 中的其它代码
                       ……
    ■向消息处理函数 OnBtonInsert( ) 和 OnBtonDelete( ) 中加入代码,实现在运行时加入或删除菜单条目。void CMenuProDlg::OnBtonInsert() 
    {
    // my code start here
    pMenu = GetMenu();   // 获取当前程序所使用菜单的指针
    pMenu ->
          InsertMenu(ID_MenuCopy,MF_BYCOMMAND,ID_MenuIns,"Menu of Insert");
            // 在菜单条目 ID_MenuCopy 的前面插入新的菜单条目 ID_MenuIns 
    // my code end 
    }void CMenuProDlg::OnBtonDelete() 
    {
    // my code start here
    pMenu = GetMenu();                  // 获取当前程序所使用菜单的指针
    pMenu -> DeleteMenu(ID_MenuExit,MF_BYCOMMAND);
                                            // 删除菜单条目 ID_MenuExit
    // my code end 
    }
      

  2.   

    取得这些资源的类指针或句柄(应该会吧)。使用GetWindowLong()函数,指定参数nIndex为GWL_ID,就取得了ID。其它属性也可以用这个函数,参见MSDN。
      

  3.   

    Toolbar是在MainFrame里创建的,可直接得到。