#t#Visual C++有很多值得学习的地方,这里我们主要介绍VS Ribbon界面,包括介绍Ribbon界面的构成等方面。为了支持新的界面风格的开发,MFC提供了很多新的、经过扩展过后的应用程序类,界面类等。例如在我们的实例程序中用到的 CRibbonApp,CMainFrame就是分别从CWinAppEx,CMDIFrameWndEx派生的。
而CWinAppEx和 CMDIFrameWndEx又是从传统的CWinApp和CMDIFrameWnd派生,在原有类的基础上,添加了对新的界面风格的支持。
熟悉MFC界面开发的朋友都知道,应用程序的CMainFrame类负责整个主框架界面的创建和管理,在传统的菜单式界面下,它负责创建和管理菜单栏,状态栏,工具栏等。同样的,在VS Ribbon界面下,它同样负责VS Ribbon界面的创建和管理。
- class CMainFrame : public CMDIFrameWndEx
- {
- DECLARE_DYNAMIC(CMainFrame)
- public:
- CMainFrame();
- // Attributes
- public:
- // Operations
- public:
- // Overrides
- public:
- virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
- // Implementation
- public:
- virtual ~CMainFrame();
- #ifdef _DEBUG
- virtual void AssertValid() const;
- virtual void Dump(CDumpContext& dc) const;
- #endif
- protected:// control bar embedded members
- CMFCRibbonBar m_wndRibbonBar;
- CMFCRibbonApplicationButton m_MainButton;
- CMFCToolBarImages m_PanelImages;
- CMFCRibbonStatusBarm_wndStatusBar;
- // Generated message map functions
- protected:
- afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
- afx_msg void OnWindowManager();
- afx_msg void OnApplicationLook(UINT id);
- afx_msg void OnUpdateApplicationLook(CCmdUI* pCmdUI);
- DECLARE_MESSAGE_MAP()
- void InitializeRibbon();
- }
从上面的代码中我们可以看到,在VS Ribbon界面下,CMainFrame类包含了三个成员变量:m_wndRibbonBar、 m_MainButton、m_wndStatusBar,分别用于控制VS Ribbon界面的命令面板,应用程序按钮和状态栏。清楚了各个变量对应的 VS Ribbon界面元素后,我们就可以操作相应的成员变量,在VS Ribbon界面上添加我们需要的内容。