添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

MFC中CDialogBar实现根据传入的按钮数量和显示文本、背景颜色派生一个子类,需要全部代码

36浏览 · 2024-03-23 15:36:46
好的,以下是实现[代码](https://geek.csdn.net/educolumn/1572ef9b473b4e00f6b2bf6d428b7c27?spm=1055.2569.3001.10083): 首先,我们需要创建一个自定义的对话框栏类,派生自CDialogBar: class CMyDialogBar : public CDialogBar DECLARE_DYNAMIC(CMyDialogBar) public: CMyDialogBar(); virtual ~CMyDialogBar(); protected: DECLARE_MESSAGE_MAP() private: // 用于存储按钮信息的结构体 struct ButtonInfo { C[string](https://geek.csdn.net/edu/8802d631b97a4a6af1f4d0bbf8527465?dp_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6NDQ0MDg2MiwiZXhwIjoxNzA3MzcxOTM4LCJpYXQiOjE3MDY3NjcxMzgsInVzZXJuYW1lIjoid2VpeGluXzY4NjQ1NjQ1In0.RrTYEnMNYPC7AQdoij4SBb0kKEgHoyvF-bZOG2eGQvc&spm=1055.2569.3001.10083) text; // 按钮文本 COLORREF color; // 按钮背景颜色 std::vector<ButtonInfo> m_buttons; // 存储所有按钮信息的容器 public: // 添加一个按钮 void AddButton(const C[string](https://geek.csdn.net/edu/8802d631b97a4a6af1f4d0bbf8527465?dp_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6NDQ0MDg2MiwiZXhwIjoxNzA3MzcxOTM4LCJpYXQiOjE3MDY3NjcxMzgsInVzZXJuYW1lIjoid2VpeGluXzY4NjQ1NjQ1In0.RrTYEnMNYPC7AQdoij4SBb0kKEgHoyvF-bZOG2eGQvc&spm=1055.2569.3001.10083)& text, COLORREF color); protected: virtual BOOL OnInitDialogBar(); virtual void DoDataExc[han](https://geek.csdn.net/educolumn/0d22b54eaf6bcf967d9625e1679d00b4?spm=1055.2569.3001.10083)ge(CDataExc[han](https://geek.csdn.net/educolumn/0d22b54eaf6bcf967d9625e1679d00b4?spm=1055.2569.3001.10083)ge* pDX); virtual void OnUpdateCmdUI(CFrameWnd* pTarget, BOOL bDisableIfNoHndler); afx_msg void OnPaint();