MFC对话框实现工具栏与菜单栏的同步使能与禁用

初步想法:对话框三个按钮,分别对应工具栏上的三个按钮与菜单栏中的三项

点击按钮,只有工具栏上对应的按钮与菜单项处于使能状态,工具栏上其他两个按钮与菜单项处于禁用状态

1、在.h文件中定义三个按钮的使能与禁止状态  ,TRUE—使能,FALSE—禁止

BOOL a;

BOOL b;

BOOL c;

2、对话框右键—类向导—命令,找到三个工具栏按钮的ID,消息选择UPDATE_COMMAND_UI,点击添加处理程序

 在上一步添加的函数里添加如下内容:

然后在按钮响应事件中添加以下内容(以a为例)其中m_wndToolBar为工具栏的变量名,ID_xxxx为对应对话框里的按钮ID

SetButtonStyle用法如下:virtual void SetButtonStyle(int nIndex, UINT nStyle);

nIndex
[in] 要设置其样式的工具栏按钮的从零开始的索引。

nStyle
[in] 按钮的样式。 有关可用工具栏按钮样式的列表。

样式列表如下:

0——使能。TBBS_DISABLED ——禁用状态

EnableMenuItem(ID,uEnable)其中ID为菜单栏子项对应的ID,uEnable如下

 {

  //工具栏设置

   a = TRUE;
   b  = FALSE;
   c = FALSE;

    int id1 = m_wndToolBar.CommandToIndex(ID_xxxx); 
    m_wndToolBar.SetButtonStyle(id1, 0);
    int id2 = m_wndToolBar.CommandToIndex(ID_xxxx);
    m_wndToolBar.SetButtonStyle(id2, TBBS_DISABLED);
    int id = m_wndToolBar.CommandToIndex(ID_xxxx);
    m_wndToolBar.SetButtonStyle(id, TBBS_DISABLED);

    //菜单栏设置

    CMenu* pMenu;
    pMenu = AfxGetMainWnd()->GetMenu();
    pMenu->EnableMenuItem(ID_xxxx, MF_GRAYED); 
    pMenu->EnableMenuItem(ID_xxxx, MF_GRAYED);
    pMenu->EnableMenuItem(ID_xxxx, MF_ENABLED)

}

   通过以上操作即可完成工具栏与菜单栏的同步使能与禁用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值