籠統(tǒng)介紹Visual Studio工具廊
#t#經(jīng)過長時(shí)間學(xué)習(xí)Visual Studio 2010,于是和大家分享一下,Ribbon界面的一個(gè)重要革新,就是可以通過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)建一個(gè)標(biāo)準(zhǔn)的工具廊控件,其中IDB_RIBBON_PALETTE_1指定了
- // 工具廊中的各個(gè)按鈕的圖標(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);
- // 在按鈕中添加子項(xiàng)目(按鈕)
- 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);