如何在应用程序中添加BCGControlBar的Ribbon控件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在应用程序中添加BCGControlBar的Ribbon控件相关的知识,希望对你有一定的参考价值。

参考技术A 本文分步介绍了如何在应用程序中添加BCGControlBar的Ribbon控件,并且附源码。
1、打开MainFrme.h,移除CBCGPMenuBar、 m_wndMenuBar、CBCGPToolBar、 m_wndToolBar。
2、对Ribbon Bar和主要的 Ribbon Button添加自定义。

1
2

CBCGPRibbonBar m_wndRibbonBar;
CBCGPRibbonMainButton m_MainButton;

3、添加定义面板图像列表。

1

CBCGPToolBarImages m_PanelIcons;

4、打开MainFrm.cpp,移除m_wndMenuBar 和m_wndToolBar有关的东西。
5、对源添加一个Ribbon Main Button(IDB_MAIN)26X26像素的位图,小图标(16像素高度)的位图列表以及大图标(32像素高度)位图列表,并将他们命名为IDB_SMALL_ICONS和IDB_LARGE_ICONS respectively。
6、在CMainFrame::OnCreate中创建Ribbon Bar:

1

m_wndRibbonBar.Create (this);

7、初始化和设置主要的Ribbon Button:

1
2
3
4

m_MainButton.SetMenu (IDR_FILE_MENU);
m_MainButton.SetImage (IDB_MAIN);
m_MainButton.SetToolTipText (_T("File"));
m_wndRibbonBar.SetMainButton (&m_MainButton, CSize (45, 45));

8、初始化和加载面板图标的图像列表。

1
2

m_PanelIcons.SetImageSize (CSize (16, 16));
m_PanelIcons.Load (IDB_PANEL_ICONS);

9、添加第一类:

1
2
3
4

CBCGPRibbonCategory* pCategory = m_wndRibbonBar.AddCategory
(_T("&Write"), // Category name
IDB_WRITE, // Category small images (16 x 16)
IDB_WRITE_LARGE); // Category large images (32 x 32)

10、添加第一个面板到这个类别:

1
2
3

CBCGPRibbonPanel* pPanel = pCategory->AddPanel (
_T("Clipboard"), // Panel name
m_PanelIcons.ExtractIcon (0)); // Panel icon

11、添加ribbon元素到面板:

1
2
3
4
5
6
7
8
9
10
11
12

// Create the first button to Panel ("Paste"):
CBCGPRibbonButton* pPasteButton = new CBCGPRibbonButton (ID_EDIT_PASTE, _T("Paste"), -1, 0);

// The third parameter (-1) tells that this button does not have a small icon.
// Therefore the "Paste" button will be always displayed with large icon.

// Associate a popup menu with the "Paste" button:
pPasteButton->SetMenu (IDR_CONTEXT_MENU);
// Add other buttons to the panel. These buttons have small icons only:
pPanel->Add (new CBCGPRibbonButton (ID_EDIT_CUT, _T("Cut"), 1));
pPanel->Add (new CBCGPRibbonButton (ID_EDIT_COPY, _T("Copy"), 2));
pPanel->Add (new CBCGPRibbonButton (ID_EDIT_PAINT, _T("Paint"), 9));本回答被提问者和网友采纳

如何在R中添加因子(整数)?

我在使用R中的CSV文件格式数据。列中有315行,名为itemsDispensed。我想计算这些数字的总和。

我已经尝试在R中进行求和(as.numeric(as.character(....)))但是我得到的结果与我在excel中做的总和不同。

下面的代码显示前20行:

 head(select2014Chap6Sec1[ ,4], n = 20)
 [1] 11.615  0.001   0.023   0.026   56.101  7.127   8.572   0.004   0.001    45.98   225.525 0.526  
 [13] 119.999 0.004   0.522   4.781   31.473  0.001   2.338   0.712  
 6999 Levels: 0 0.001 0.002 0.003 0.004 0.005 0.006 0.007 0.008 0.009 0.01 0.011      0.012 0.013 ... 999.958

我使用的方法如下所示:

> sum(select2014Chap6Sec1[ ,4])
  [1] 778211

sum(as.numeric(as.character(....)))的错误在下面显示NA值:

> sum(as.numeric(as.character(testFactorCol4)))
[1] NA
Warning message:
NAs introduced by coercion 

如果你想使用dput方法,我可以提供所有数据。谢谢

答案

当你做read.csv时,尝试设置参数stringsAsFactors=FALSE。或者,您可以使用参数colClasses,其中如果第一列是字符,第二列是整数,第三列是数字,您可以执行类似read.csv("file.csv", colClasses=c("character", "integer","numeric"))的操作。

具体来说,听起来你有一个R猜测是一个“因子”的列,所以你应该在colClasses中将该列设置为“数字”。

一旦他们被读入R,这可能会让你省去一些麻烦。

以上是关于如何在应用程序中添加BCGControlBar的Ribbon控件的主要内容,如果未能解决你的问题,请参考以下文章

如何在我的发行版 EXE 中使用 BCGControlBar 调试 DLL

如何在vc++6.0中引用bcgcontrolbar控件?

MFC界面库BCGControlBar v25.0新功能详解一:可视化主题

BCGSoft Demo示例展示:Ribbon示例集合

如何在闪亮的 R 应用程序中使用传单添加控制输入?

BCGSoft Demo示例展示:网格示例