天气与日历 切换到窄版

 找回密码
 立即注册
中国膜结构网
十大进口膜材评选 十大国产膜材评选 十大膜结构设计评选 十大膜结构公司评选
查看: 46|回复: 0

ObjectARX› 增强型工具栏

[复制链接]

该用户从未签到

主题

0

回帖

2912

积分

管理员

积分
2912
发表于 2024-6-22 09:46:18 | 显示全部楼层 |阅读模式
#pragma once

#include "resource.h"
#include "SendCmd.h"
#include "ToolButton.h"


#define BAR_FIRST_MENU_ID 3000
#define BAR_FIRST_BUTTON_ID 4000

struct MenuItemTag
{
public:
    MenuItemTag(UINT flags, UINT ids, CString name, CString cmd) : menuName(name),menuCmd(cmd)
    {
        nFlags = flags;
        nIds = ids;
    }
    MenuItemTag(const MenuItemTag& other)
    {
        nFlags = other.nFlags;
        nIds = other.nIds;
        menuName = other.menuName;
        menuCmd = other.menuCmd;
    }

    MenuItemTag& operator = (const MenuItemTag &other)
    {
        if (this != &other)
        {
            nFlags = other.nFlags;
            nIds = other.nIds;
            menuName = other.menuName;
            menuCmd = other.menuCmd;
        }
        return *this;
    }
public:
    UINT nFlags;//MF_STRING, MF_SEPARATOR,MF_SUBPOP
    UINT nIds;
    CString menuName;
    CString menuCmd;
};

typedef std::vector<MenuItemTag> MenuGroup;
typedef std::map<CString, MenuGroup> MenuMap;
typedef std::map<UINT, CString> MenuCmdMap;

class CBarDlg : public CAcUiDialogBar
{
    DECLARE_DYNAMIC(CBarDlg)

public:
    CBarDlg(CWnd* pParent = NULL);   // 标准构造函数
    virtual ~CBarDlg();
    // 对话框数据
    enum { IDD = IDD_DIALOG_MENUBAR };

    //一系列button
    std::vector<CToolButton*> m_buttons;

    MenuMap m_map;
    MenuCmdMap m_cmdMap;
    void InitMenuMap();
    //弹出菜单
    CMenu m_popMenu;
    void PopupMenu(CString titleName, UINT nCtrlId);
    void CreateSubPopupMenu(CMenu &popMenu, CString titleName);
    CPoint GetTrackPnt(UINT nCtlrId);
    void OnToolButtonClick(UINT buttonId);
    void OnPopupMenuItemClick(UINT menuId);
    std::vector<CString> GetMenu(CString menuPath);
    void CreateButton(std::vector<CString>& button);
    void CreateMenu(std::vector<CString>& button);
protected:
    virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持
    virtual void OnUpdateCmdUI(CFrameWnd* pTarget, BOOL bDisableIfNoHndler);
    DECLARE_MESSAGE_MAP()
protected:
    afx_msg void OnPaint();
    afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
    afx_msg LRESULT OnInitDialog(WPARAM, LPARAM);
};

 

 

 

 

ObjectARX&#8250; 增强型工具栏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|中国膜结构网|中国膜结构协会|进口膜材|国产膜材|ETFE|PVDF|PTFE|设计|施工|安装|车棚|看台|污水池|中国膜结构网_中国空间膜结构协会

GMT+8, 2024-11-1 13:33 , Processed in 0.227444 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表