创建Visual Studio辅助控件

开发 后端
这里介绍Visual Studio 2010为了支持现代软件对丰厚的界面交互方式的要求,于是就提供了很多其他的Visual Studio辅助控件,例如我们通常会用到的“上一步”按钮,标签文本,超链文本,滑动条,进度条等等。

#t#本人很喜欢Visual Studio,在工作中也很喜欢总结关于创建Visual Studio辅助控件的经验教训,下面就这个问题来详细说说吧。Visual Studio 2010为了支持现代软件对丰厚的界面交互方式的要求,于是就提供了很多其他的Visual Studio辅助控件,例如我们通常会用到的“上一步”按钮,标签文本,超链文本,滑动条,进度条等等。这些Visual Studio辅助控件,极大地丰富了Ribbon界面的表现力。

如下代码演示了Visual Studio辅助控件的创建过程:

  1. // 添加“上一步”按钮  
  2. CMFCRibbonPanel* pPanel1 = pCategory->AddPanel(_T("Undo"));  
  3.  
  4. CMFCRibbonUndoButton* pBtn1 = new CMFCRibbonUndoButton(ID_RIBBON_OBTN_1, _T("Undo"), 0, 0);  
  5. // 为返回按钮添加可以返回的动作  
  6. for (int i = 0; i < 10; i++)  
  7. {  
  8.     CString str;  
  9.     str.Format(_T("Action %d"), i + 1);  
  10.     pBtn1->AddUndoAction(str);  
  11. }  
  12. pPanel1->Add(pBtn1);  
  13.  
  14. // 添加文本标签  
  15. CMFCRibbonPanel* pPanel2 = pCategory->AddPanel(_T("Label"));  
  16.  
  17. pPanel2->Add(new CMFCRibbonLabel(_T("Label 1")));  
  18. pPanel2->Add(new CMFCRibbonLabel(_T("Label 2")));  
  19. pPanel2->Add(new CMFCRibbonLabel(_T("Label 3")));  
  20.  
  21. // 在面板中添加一个分隔符  
  22. pPanel2->Add(new CMFCRibbonSeparator());  
  23.  
  24. // 多行文本标签  
  25. pPanel2->Add(new CMFCRibbonLabel(_T("This is a multi-line label"), TRUE));  
  26.  
  27. // 添加超链标签  
  28. CMFCRibbonPanel* pPanel3 = pCategory->AddPanel(_T("Hyperlink"));  
  29.  
  30. // 写mail给我啊  
  31. pPanel3->Add(new CMFCRibbonLinkCtrl(ID_RIBBON_OBTN_2, _T("Send e-mail"), 
    _T("mailto:chenlq@live.com")));  
  32. // 欢迎访问我的blog  
  33. pPanel3->Add(new CMFCRibbonLinkCtrl(ID_RIBBON_OBTN_3, _T("Visit site"), 
    _T("http://space.itpub.net/17237043/")));  
  34. pPanel3->Add(new CMFCRibbonLinkCtrl(ID_RIBBON_OBTN_4, _T("Launch Notepad"), _T("notepad")));  
  35.  
  36. // 滑动条  
  37. CMFCRibbonPanel* pPanel4 = pCategory->AddPanel(_T("Sliders"));  
  38. pPanel4->SetCenterColumnVert();  
  39.  
  40. pPanel4->Add(new CMFCRibbonLabel(_T("Simple Slider:")));  
  41. pPanel4->Add(new CMFCRibbonSlider(ID_RIBBON_OBTN_5, 70 /* Slider width */));  
  42.  
  43. pPanel4->Add(new CMFCRibbonSeparator());  
  44.  
  45. pPanel4->Add(new CMFCRibbonLabel(_T("Slider with Buttons:")));  
  46. CMFCRibbonSlider* pBtn6 = new CMFCRibbonSlider(ID_RIBBON_OBTN_6, 70 /* Slider width */);  
  47. // 设置缩放按钮  
  48. pBtn6->SetZoomButtons();  
  49. pBtn6->SetRange(0, 100);  
  50. pBtn6->SetPos(50);  
  51. pPanel4->Add(pBtn6);  
  52.  
  53. // 进度条  
  54. CMFCRibbonPanel* pPanel5 = pCategory->AddPanel(_T("Progress Bars"));  
  55. pPanel5->SetCenterColumnVert();  
  56.  
  57. // 简单进度条  
  58. pPanel5->Add(new CMFCRibbonLabel(_T("Simple Progress:")));  
  59. pPanel5->Add(new CMFCRibbonProgressBar(ID_RIBBON_OBTN_7, 100 /* Bar width */));  
  60. pPanel5->Add(new CMFCRibbonButton(ID_RIBBON_OBTN_8, _T("Show Progress 1")));  
  61.  
  62. pPanel5->Add(new CMFCRibbonSeparator());  
  63.  
  64. pPanel5->Add(new CMFCRibbonLabel(_T("Infinite Progress:")));  
  65. CMFCRibbonProgressBar* pBtn9 = new CMFCRibbonProgressBar(ID_RIBBON_OBTN_9, 100 /* Bar width */);  
  66. // 设置为无限模式,表示动作在进行,但是没有明确的进度  
  67. pBtn9->SetInfiniteMode();  
  68. pPanel5->Add(pBtn9);  
  69.  
  70. pPanel5->Add(new CMFCRibbonButton(ID_RIBBON_OBTN_10, _T("Show Progress 2"))); 
责任编辑:佚名 来源: 博客
相关推荐

2009-07-01 17:20:10

web用户控件Visual Stud

2010-07-29 09:41:23

Visual Stud

2010-07-27 09:40:01

敏捷Visual Stud

2009-11-10 15:27:42

Visual Stud

2010-04-16 14:08:46

Visual Stud

2009-08-26 09:09:57

Visual Stud

2009-07-01 17:04:13

ListViewVisual Stud

2010-07-08 09:26:01

Visual Stud

2010-02-23 09:02:00

Visual Stud

2010-05-28 13:30:02

Visual Stud

2010-01-27 10:32:40

Visual Stud

2009-08-24 17:50:39

C#项目案例

2009-12-03 10:04:50

Visual Stud

2013-11-18 10:45:19

Visual StudWindows Azu

2009-12-03 13:59:32

Visual Stud

2023-09-05 07:32:22

vscode开源故障

2013-11-14 01:09:35

微软Visual StudVisual Stud

2009-12-02 16:49:46

Visual Stu

2013-11-18 09:34:42

Visual Stud网站

2023-04-03 07:08:28

C++函数模板
点赞
收藏

51CTO技术栈公众号