为什么我不能赶上工具栏的事件?(Why i can't catch the ToolBar

2019-09-22 14:24发布

我有一个包含4个按钮简单的对话。 我想改变这4个按钮,并工具栏,包含4个按钮,将恰好像这些按钮。

在H文件CMFCToolBar;

在的OnInitDialog方法我把这个代码:

if(m_ToolBar.Create(this, AFX_DEFAULT_TOOLBAR_STYLE, 100 ) )
{
    m_ToolBar.SetPaneStyle(m_ToolBar.GetPaneStyle() & ~( CBRS_GRIPPER | CBRS_SIZE_DYNAMIC | CBRS_BORDER_ANY ) );

    m_ToolBar.InsertButton( CMFCToolBarButton( IDC_BTN_1, -1 , _T("Txt_1") ) );
    m_ToolBar.InsertButton( CMFCToolBarButton( IDC_BTN_2, -1 , _T("Txt_2") ) );
    m_ToolBar.InsertButton( CMFCToolBarButton( IDC_BTN_3, -1 , _T("Txt_3") ) );
    m_ToolBar.InsertButton( CMFCToolBarButton( IDC_BTN_4, -1 , _T("Txt_4") ) );

    CSize size = m_ToolBar.CalcFixedLayout( FALSE, TRUE );
    m_ToolBar.SetWindowPos( NULL, 0, 0, size.cx + 10, size.cy + 10 , SWP_NOACTIVATE | SWP_NOZORDER );

}
  • 该IDC_BTN_XX是相同的ID与原始按钮=>所以在BEGIN_MESSAGE_MAP我没有任何改变=>所以我要得到相同的Click事件以前一样

但是happand是,单击工具栏没有happand =>和工具栏按钮是灰色出来的时候点击。

该怎么办 ? 我做错了什么?

Answer 1:

你是以下的程序是使用Visual Studio 2010是正确的。

如果你在一个新的MFC项目再次尝试,基于对话框:

  • 添加一个按钮IDC_BUTTON1
  • 管理单击代码
  • 添加工具栏与您在这里提出了相同的代码

它的工作原理?



文章来源: Why i can't catch the ToolBar events ?