VS2010 Ribbon测试案例

使用VS2010创建一个带Ribbon样式的单文档程序

项目类型为:Office 




在资源中,可对Ribbon进行编辑 






在资源中,可对Ribbon进行编辑 
Ribbon控件中,按右键,添加事件处理






==============================================

图标的添加:

使用 Axialis IconWorkshop

添加一个: 来自数个文件的图像带


添加数个PNG图像(推荐PNG图像,带Alpha透明)




最后保存成BMP格式


在VS资源中,导入BMP,如下: IDB_BMP_ICO  IDB_BMP_ICO2  分别用于大图标与小图标








在面板的属性中,分别指定此面板需要采用的LargeImages 与 SmallImages 





在面板中的按钮属性中,添加图标






运行结果:






主界面:




============================================

复选框的按钮,需要添加一个 BOOL m_bCheck; 

在按钮中,对其进行控件,并在Ribbon更新的时候,对复选框进行勾选或取消勾选


void CMainFrame::OnChkTest()
{
	m_bCheck = !m_bCheck;
	if (m_bCheck)
	{
		AfxMessageBox(_T("勾选"));
	}
	else
	{
		AfxMessageBox(_T("取消"));
	}
}


void CMainFrame::OnUpdateChkTest(CCmdUI *pCmdUI)
{
	pCmdUI->SetCheck(m_bCheck);
}




其他部分代码:

void CMainFrame::OnBtnTesta()
{
	AfxMessageBox(_T("测试按钮A"));
}


void CMainFrame::OnChkTest()
{
	m_bCheck = !m_bCheck;
	if (m_bCheck)
	{
		AfxMessageBox(_T("勾选"));
	}
	else
	{
		AfxMessageBox(_T("取消"));
	}
}


void CMainFrame::OnUpdateChkTest(CCmdUI *pCmdUI)
{
	pCmdUI->SetCheck(m_bCheck);
}


void CMainFrame::OnEdtA()
{
	// TODO: 在此添加命令处理程序代码
}


void CMainFrame::OnEdtB()
{
	// TODO: 在此添加命令处理程序代码
}


void CMainFrame::OnBtnEditText()
{
	 CMFCRibbonEdit* pEditA = DYNAMIC_DOWNCAST(CMFCRibbonEdit, m_wndRibbonBar.FindByID(ID_EDT_A));
	 CMFCRibbonEdit* pEditB = DYNAMIC_DOWNCAST(CMFCRibbonEdit, m_wndRibbonBar.FindByID(ID_EDT_B));

	 CString strA;
	 strA = pEditA->GetEditText();

	 CString strB;
	 strB = pEditB->GetEditText();

	 AfxMessageBox(strA+_T(" - ")+strB);

	CMFCRibbonButton* pBtn = DYNAMIC_DOWNCAST(CMFCRibbonButton, m_wndRibbonBar.FindByID(ID_BTN_EDIT_TEXT));	 
}


void CMainFrame::OnBtnColor()
{
	CMFCRibbonColorButton* pBtn = DYNAMIC_DOWNCAST(CMFCRibbonColorButton, m_wndRibbonBar.FindByID(ID_BTN_COLOR));	 
	COLORREF color;
	color = pBtn->GetColor();

	BYTE r = GetRValue(color);
	BYTE g = GetGValue(color);
	BYTE b = GetBValue(color);

	CString strColor;
	strColor.Format(_T("颜色:R:%d-G:%d-B:%d"), r, g, b);
	AfxMessageBox(strColor);
}


void CMainFrame::OnSpinNum()
{
	// 怎么会运行两次呢
	CMFCRibbonEdit* pEdit = DYNAMIC_DOWNCAST(CMFCRibbonEdit, m_wndRibbonBar.FindByID(ID_SPIN_NUM));	 
	CString strGet;
	strGet = pEdit->GetEditText();
	AfxMessageBox(strGet); 
}


void CMainFrame::OnCmbTest()
{
	CMFCRibbonComboBox* pCmb = DYNAMIC_DOWNCAST(CMFCRibbonComboBox, m_wndRibbonBar.FindByID(ID_CMB_TEST));	 
	CString strGet;
	strGet = pCmb->GetEditText();
	AfxMessageBox(strGet);
}


源码下载 

RibbonMenu_测试

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值