Visual Studio Ribbon面板的層次
Visual Studio有很多值得學習的地方,這里我們主要介紹Visual Studio Ribbon面板,包括介紹Visual Studio 2010為我們提供了很多控件等方面。除了我們上回介紹的命令按鈕(CMFCRibbonButton)之外,還有工具廊 (CMFCRibbonGallery),顏色按鈕(CMFCRibbonColorButton),編輯框(CMFCRibbonEdit),進度條 (CMFCRibbonProgressBar)等等。合理地使用這些控件,我們可以創建豐富的Ribbon界面,增強軟件的可用性。在這回中,我們就介紹一下如何使用這些控件,創建更加復雜的Ribbon界面,完成更加復雜的交互任務。
#t#為了更好地理解和創建Ribbon界面,在開始具體地介紹各種控件之前,我們先來了解一下Ribbon界面的結構層次。在上一回中,我們介紹了Ribbon界面主要由Visual Studio Ribbon面板(CMFCRibbonBar)構成,而Visual Studio Ribbon面板主要的主要分為三個層次:
◆分類(CMFCRibbonCategory)
很明顯,“分類”就是作用相近的一類命令的組合。例如在Word 2007的Ribbon界面中,微軟將跟插入元素相關的命令都放在“Insert”這個頁面中,當用戶想在Word文檔中插入其他元素時,只要切換到這一頁就可以找到他需要的命令。在形式上,“分類”表現為Visual Studio Ribbon面板上的一個Tab頁面。我們可以使用函數AddCategory()在Visual Studio Ribbon面板上添加一個新的“分類”:
- // 添加一個命令分組(Category)“RibbonUI Category”
- CMFCRibbonCategory *pRibbonUICategory = m_wndRibbonBar.
AddCategory(_T("RibbonUI Category"), IDB_WRITESMALL, IDB_WRITELARGE);
◆面板(CMFCRibbonPanel)
“面板”是“分類”的下一個層次。它是聯系更加緊密的一組命令的組合。面板總是被放置在某個“分類”中,被“分類”所包含。同時,“面板”又是一個容器,它包含著它的下一個層次“元素”。我們可以通過AddPanel()函數在“分類”中添加新的“面板”:
- // 添加一個面板(Panel)
- CMFCRibbonPanel *pTestPanel = pRibbonUICategory->
- AddPanel(_T("RibbonUI Panel"),m_PanelImages.ExtractIcon(1));
◆元素(CMFCRibbonBaseElement)
“元素”就是我們通常意義上的控件、這些控件根據各自的功能,被分組放置在各個“面板”上,負責完成具體的交互任務。Visual Studio 2010提供的Ribbon界面“元素”主要包括命令按鈕(CMFCRibbonButton)。工具廊(CMFCRibbonGallery)、顏色按鈕(CMFCRibbonColorButton)、編輯框(CMFCRibbonEdit)、進度條(CMFCRibbonProgressBar)等等。這些類都派生自CMFCRibbonBaseElement。