籠統(tǒng)介紹Visual Studio工具廊
#t#經(jīng)過長時間學習Visual Studio 2010,于是和大家分享一下,Ribbon界面的一個重要革新,就是可以通過Visual Studio工具廊(CMFCRibbonGallery)控件,對命令的執(zhí)行效果進行直觀地預覽??赐瓯疚哪憧隙ㄓ胁簧偈斋@,希望本文能教會你更多東西。例如Word 2007的段落格式設置,就是通過Visual Studio工具廊直觀地展示了格式的樣子,這很大程度上減少了用戶通過不斷嘗試各種參數(shù)找到合適格式的過程。
下面我們就來看看如何創(chuàng)建Visual Studio工具廊這種新的交互工具。如下的代碼,演示了Visual Studio工具廊控件的創(chuàng)建過程:
- CMFCRibbonPanel* pPanel1 = pCategory->AddPanel(_T("Standard"));
- // 創(chuàng)建一個標準的工具廊控件,其中IDB_RIBBON_PALETTE_1指定了
- // 工具廊中的各個按鈕的圖標,通過這些圖標對命令效果進行預覽
- pPanel1->Add(new CMFCRibbonGallery(ID_RIBBON_PBTN_1,
_T("Embedded"), 0, 0, IDB_RIBBON_PALETTE_1, 64));- // 按鈕模式的工具廊控件
- // 按鈕模式的工具廊控件可以減少對面板空間的占用
- CMFCRibbonGallery* pBtn2 = new CMFCRibbonGallery(ID_RIBBON_PBTN_2,
_T("Button"), 1, 1, IDB_RIBBON_PALETTE_1, 64);- // 設置面板按鈕為按鈕模式,默認情況下為畫廊(Gallery)模式
- pBtn2->SetButtonMode();
- pBtn2->SetAlwaysLargeImage();
- pPanel1->Add(pBtn2);
- CMFCRibbonPanel* pPanel2 = pCategory->AddPanel(_T("Extended"));
- // 對工具廊進行布局設置
- CMFCRibbonGallery* pBtn3 = new CMFCRibbonGallery(ID_RIBBON_PBTN_3,
_T("Resize Vertical"), 2, 2, IDB_RIBBON_PALETTE_1, 64);- pBtn3->SetButtonMode();
- // 設置按鈕模式下,下拉命令按鈕容器(Gallery)的列數(shù)
- pBtn3->SetIconsInRow(2);
- pBtn3->EnableMenuResize(TRUE, TRUE);
- pPanel2->Add(pBtn3);
- CMFCRibbonGallery* pBtn4 = new CMFCRibbonGallery(ID_RIBBON_PBTN_4,
_T("Resize Both"), 3, 3, IDB_RIBBON_PALETTE_1, 64);- pBtn4->SetButtonMode();
- // 通過SetIconInRow()和EnableMenuResize()設置命令按鈕的布局
- pBtn4->SetIconsInRow(4);
- pBtn4->EnableMenuResize(TRUE);
- pPanel2->Add(pBtn4);
- CMFCRibbonGallery* pBtn5 = new CMFCRibbonGallery(ID_RIBBON_PBTN_5,
_T("Groups && Subitems"), 4, 4);- // 通過AddGroup()函數(shù),對命令按鈕進行分組
- pBtn5->AddGroup(_T("Group 1"), IDB_RIBBON_PALETTE_1, 64);
- pBtn5->AddGroup(_T("Group 2"), IDB_RIBBON_PALETTE_2, 64);
- pBtn5->SetButtonMode();
- pBtn5->SetIconsInRow(4);
- pBtn5->EnableMenuResize(TRUE);
- // 在按鈕中添加子項目(按鈕)
- pBtn5->AddSubItem(new CMFCRibbonButton(ID_RIBBON_MENU_ITEM_1, _T("Item 1")));
- pBtn5->AddSubItem(new CMFCRibbonButton(ID_RIBBON_MENU_ITEM_2, _T("Item 2")));
- pBtn5->AddSubItem(new CMFCRibbonButton(ID_RIBBON_MENU_ITEM_3, _T("Item 3")));
- pPanel2->Add(pBtn5);