zoukankan      html  css  js  c++  java
  • 【MFC】CDialogBar中按钮不可用

    现象展示:

    具体原因:

    A button in a CDialogBar object is disabled automatically if the command routing does not contain a command handler function for the button.
    To enable a button in a CDialogBar object, the command routing must include a command handler for the button. 

    NOTE: Because the CDialogBar object is not included in the routing scheme, the ON_BN_CLICKED() or ON_COMMAND() handler must be placed in one of the objects mentioned above that is in the routing scheme and not in the CDialogBar class.

    解决办法:

    1、如果按钮的消息处理是在CMainFrame中的就不用OnUpdateCmdUI,在其他类的话还是要重载OnUpdateCmdUI的

    2、重载CMainFrame::OnCmdMsg函数

    BOOL CMainFrame::OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo)
    {
        if(m_wndDlgBar.OnCmdMsg(nID, nCode, pExtra, pHandlerInfo))
        {
            return TRUE;
        }
        return CMDIFrameWndEx::OnCmdMsg(nID, nCode, pExtra, pHandlerInfo);
    }

    3、重载CDialogBar::OnUpdateCmdUI

    void CMyDialogBar::OnUpdateCmdUI(CFrameWnd* pTarget, BOOL bDisableIfNoHandler)
    {
        CDialogBar::OnUpdateCmdUI(pTarget, FALSE);
    }
  • 相关阅读:
    maven项目诡异的问题
    13) Developing Java Plugins
    15) maven dependency scope
    Bootstrap学习记录
    电力
    MongoDB学习记录
    Java基础知识
    旅游
    人生感悟
    【转】25岁到55岁:如何规划人生最重要的三个十年
  • 原文地址:https://www.cnblogs.com/yvqvan/p/8574242.html
Copyright © 2011-2022 走看看