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

来源:互联网 发布:普通话软件 编辑:程序博客网 时间:2024/06/04 20:46

在建立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的控件的自动化程度很低但是自由度很高.

0 0
原创粉丝点击