Disable/Enable Ribbon Buttons for MFC Feature Pack

When you create the CMFCRibbonButton object you have to specify the associated command ID (see the documentation for the CMFCRibbonButton constructor here). Enabling and disabling of ribbon buttons is then done using the usual command update mechanism in MFC, using the CCmdUI class.

For example, if you have a ribbon button whose command ID is ID_MYCOMMAND and you want to handle this command in your application's view class, you should add these functions to the class:

// MyView.h 
class CMyView : public CView { 
   
// ... 
   
private: 
        afx_msg
void OnMyCommand(); 
        afx_msg
void OnUpdateMyCommand(CCmdUI* pCmdUI); 
        DECLARE_MESSAGE_MAP
() 
}; 

and implement them in the .cpp file:

// MyView.cpp 
void CMyView::OnMyCommand() { 
   
// add command handler code. 
} 
 
void CMyView::OnUpdateMyCommand(CCmdUI* pCmdUI) { 
    BOOL enable
= ...; // set flag to enable or disable the command. 
    pCmdUI
->Enable(enable); 
} 

You should also add ON_COMMAND and ON_UPDATE_COMMAND_UI entries to the message map for the CMyView class:

// MyView.cpp 
BEGIN_MESSAGE_MAP
(CMyView, CView) 
    ON_COMMAND
(ID_MYCOMMAND, &CMyView::OnMyCommand) 
    ON_UPDATE_COMMAND_UI
(ID_MYCOMMAND, &CMyView::OnUpdateMyCommand) 
END_MESSAGE_MAP
() 

For more information on message maps in MFC, refer to TN006: Message Maps in MSDN.

I hope this helps!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值