C++/MFC修行之路(5)Ribbon(功能区)的使用

本文介绍了MFC中Ribbon控件的使用方法及其注意事项,包括如何为按钮添加事件处理程序,如何使用复选框实现单选或多选功能,以及如何禁用控件等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在建立MFC工程的时候,可以选择是否使用功能区(Ribbon),Ribbon是一个可以安装部分控件的区域,如果你使用过微软的Office,应给对这个不陌生:
图1-Ribbon
Ribbon中能使用的控件很有限:
图2-控件工具箱
使用Ribbon需要注意的问题:
1. 按钮
如果你只是添加了按钮而没有给按钮添加事件处理程序,这个按钮会处于灰色无法使用的状态;添加事件处理程序的方法和普通的按钮是一样的,需要注意的是,每个Ribbon控件都有两种消息:
COMMAND和UPDATE_COMMAND_UI
其中COMMAND对应的是按钮的点击事件,另一个是用来更新UI状态的,例如,你想禁用一个按钮,在Ribbon中,唯一的方法是:

bool flag=false;
void CMainFrame::OnUpdateButton1(CCmdUI *pCmdUI)
{
    pCmdUI->Enable(flag);
}
//需要改变按钮的状态(是否可用),只需改变flag的值就可以了
  1. 复选框
    在Ribbon中,无法使用单选按钮/RadioButton/选项组这样的特殊选择框,唯一可用的是复选框,复选框的使用方法是这样的:
bool flag=false;
void CMainFrame::OnChk1()
{
    // TODO:  在此添加命令处理程序代码
    flag=!flag;
}
void CMainFrame::OnUpdateChk1(CCmdUI *pCmdUI)
{
    pCmdUI->SetCheck(flag);
}

在实际使用中,通过使用同一个bool变量,可以使得两个CheckBox成为互斥的,通过使用枚举变量,可以使得多个CheckBox成为单选组,同样,也可以使用与按钮相同的方法来禁用选框.
3. Ribbon中的其他控件的使用,大都遵循这样类似的方法,总的来说,Ribbon的控件的自动化程度很低但是自由度很高.

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值