实例解析Visual Studio命令按钮

Visual Studio还是比较常用的,于是我研究了一下Visual Studio命令按钮,在这里拿出来和大家分享一下,希望对大家有用。Visual Studio命令按钮可以说是我们最常用的Ribbon控件了,我们通常都是通过Visual Studio命令按钮来发送某个命令,执行某个动作。

#t#它代替了过去的菜单命令,成为使用最频繁的 Ribbon控件。在Ribbon界面中,主要有三种形式的Visual Studio命令按钮:大图标按钮,小图标按钮以及表示选择的复选按钮(CheckBox)。

按照上回我们介绍的Ribbon界面开发流程,我们需要先准备菜单资源,图标资源,实现消息响应函数等,这里我们就不再赘述这一过程,而把重点放在如何创建Ribbon界面。下面的代码分别演示了这三种按钮的创建过程:

 
 
 
  1. // 创建一个新的面板,用于放置大图标按钮  
  2. CMFCRibbonPanel* pPanel1 = pCategory->AddPanel(_T("Large Buttons"));  
  3.  
  4. // 创建按钮  
  5. CMFCRibbonButton* pBtn1 = new CMFCRibbonButton(ID_RIBBON_BTN_1, _T("Button"), 0, 0);  
  6. // 指定使用大图标  
  7. pBtn1->SetAlwaysLargeImage();  
  8. // 将按钮添加到面板中  
  9. pPanel1->Add(pBtn1);  
  10.  
  11. CMFCRibbonButton* pBtn2 = new CMFCRibbonButton(ID_RIBBON_BTN_2, _T("Menu Button"), 1, 1);  
  12. // 可以通过SetMenu()函数为按钮设置一个子菜单  
  13. pBtn2->SetMenu(IDR_RIBBON_MENU_1);  
  14. pBtn2->SetAlwaysLargeImage();  
  15. pPanel1->Add(pBtn2);  
  16.  
  17. CMFCRibbonButton* pBtn3 = new CMFCRibbonButton(ID_RIBBON_BTN_3, _T("Split Button"), 2, 2);  
  18. pBtn3->SetMenu(IDR_RIBBON_MENU_1, TRUE);  
  19. pBtn3->SetAlwaysLargeImage();  
  20. // 可以通过RemoveSubItem()和AddSubItem()动态地改变按钮的子项目  
  21. pBtn3->RemoveSubItem(0);  
  22. pBtn3->AddSubItem(new CMFCRibbonButton(ID_RIBBON_MBTN_1, _T("Item 1"), 2), 0);  
  23. pPanel1->Add(pBtn3);  
  24.  
  25. // 创建新的面板,用于放置小图标按钮  
  26. CMFCRibbonPanel* pPanel2 = pCategory->AddPanel(_T("Small"));  
  27.  
  28. // 创建小图标按钮  
  29. CMFCRibbonButton* pBtn4 = new CMFCRibbonButton(ID_RIBBON_BTN_4, _T("Button"), 3);  
  30. pPanel2->Add(pBtn4);  
  31.  
  32. CMFCRibbonButton* pBtn5 = new CMFCRibbonButton(ID_RIBBON_BTN_5, _T("Menu Button"), 4);  
  33. pBtn5->SetMenu(IDR_RIBBON_MENU_1);  
  34. pPanel2->Add(pBtn5);  
  35.  
  36. CMFCRibbonButton* pBtn6 = new CMFCRibbonButton(ID_RIBBON_BTN_6, _T("Split Button"), 5);  
  37. pBtn6->SetMenu(IDR_RIBBON_MENU_1, TRUE);  
  38. pBtn6->SetAlwaysLargeImage();  
  39. pBtn6->RemoveSubItem(1);  
  40. pBtn6->AddSubItem(new CMFCRibbonButton(ID_RIBBON_MBTN_2, _T("Item 2"), 5), 1);  
  41. pPanel2->Add(pBtn6);  
  42.  
  43. //创建新的面板,用于放置复选按钮  
  44. CMFCRibbonPanel* pPanel3 = pCategory->AddPanel(_T("Check Boxes"));  
  45.  
  46. pPanel3->Add(new CMFCRibbonCheckBox(ID_RIBBON_BTN_7, _T("Check Box 1")));  
  47. pPanel3->Add(new CMFCRibbonCheckBox(ID_RIBBON_BTN_8, _T("Check Box 2")));  
  48. pPanel3->Add(new CMFCRibbonCheckBox(ID_RIBBON_BTN_9, _T("Check Box 3"))); 
THE END