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















 
 
 

 
 
 
 