Visual Studio还是比较常用的,于是我研究了一下Visual Studio命令按钮,在这里拿出来和大家分享一下,希望对大家有用。Visual Studio命令按钮可以说是我们最常用的Ribbon控件了,我们通常都是通过Visual Studio命令按钮来发送某个命令,执行某个动作。
#t#它代替了过去的菜单命令,成为使用最频繁的 Ribbon控件。在Ribbon界面中,主要有三种形式的Visual Studio命令按钮:大图标按钮,小图标按钮以及表示选择的复选按钮(CheckBox)。
按照上回我们介绍的Ribbon界面开发流程,我们需要先准备菜单资源,图标资源,实现消息响应函数等,这里我们就不再赘述这一过程,而把重点放在如何创建Ribbon界面。下面的代码分别演示了这三种按钮的创建过程:
- // 创建一个新的面板,用于放置大图标按钮
- CMFCRibbonPanel* pPanel1 = pCategory->AddPanel(_T("Large Buttons"));
- // 创建按钮
- CMFCRibbonButton* pBtn1 = new CMFCRibbonButton(ID_RIBBON_BTN_1, _T("Button"), 0, 0);
- // 指定使用大图标
- pBtn1->SetAlwaysLargeImage();
- // 将按钮添加到面板中
- pPanel1->Add(pBtn1);
- CMFCRibbonButton* pBtn2 = new CMFCRibbonButton(ID_RIBBON_BTN_2, _T("Menu Button"), 1, 1);
- // 可以通过SetMenu()函数为按钮设置一个子菜单
- pBtn2->SetMenu(IDR_RIBBON_MENU_1);
- pBtn2->SetAlwaysLargeImage();
- pPanel1->Add(pBtn2);
- CMFCRibbonButton* pBtn3 = new CMFCRibbonButton(ID_RIBBON_BTN_3, _T("Split Button"), 2, 2);
- pBtn3->SetMenu(IDR_RIBBON_MENU_1, TRUE);
- pBtn3->SetAlwaysLargeImage();
- // 可以通过RemoveSubItem()和AddSubItem()动态地改变按钮的子项目
- pBtn3->RemoveSubItem(0);
- pBtn3->AddSubItem(new CMFCRibbonButton(ID_RIBBON_MBTN_1, _T("Item 1"), 2), 0);
- pPanel1->Add(pBtn3);
- // 创建新的面板,用于放置小图标按钮
- CMFCRibbonPanel* pPanel2 = pCategory->AddPanel(_T("Small"));
- // 创建小图标按钮
- CMFCRibbonButton* pBtn4 = new CMFCRibbonButton(ID_RIBBON_BTN_4, _T("Button"), 3);
- pPanel2->Add(pBtn4);
- CMFCRibbonButton* pBtn5 = new CMFCRibbonButton(ID_RIBBON_BTN_5, _T("Menu Button"), 4);
- pBtn5->SetMenu(IDR_RIBBON_MENU_1);
- pPanel2->Add(pBtn5);
- CMFCRibbonButton* pBtn6 = new CMFCRibbonButton(ID_RIBBON_BTN_6, _T("Split Button"), 5);
- pBtn6->SetMenu(IDR_RIBBON_MENU_1, TRUE);
- pBtn6->SetAlwaysLargeImage();
- pBtn6->RemoveSubItem(1);
- pBtn6->AddSubItem(new CMFCRibbonButton(ID_RIBBON_MBTN_2, _T("Item 2"), 5), 1);
- pPanel2->Add(pBtn6);
- //创建新的面板,用于放置复选按钮
- CMFCRibbonPanel* pPanel3 = pCategory->AddPanel(_T("Check Boxes"));
- pPanel3->Add(new CMFCRibbonCheckBox(ID_RIBBON_BTN_7, _T("Check Box 1")));
- pPanel3->Add(new CMFCRibbonCheckBox(ID_RIBBON_BTN_8, _T("Check Box 2")));
- pPanel3->Add(new CMFCRibbonCheckBox(ID_RIBBON_BTN_9, _T("Check Box 3")));