为什么我无法捕捉ToolBar事件?

时间:2012-09-19 06:29:02

标签: visual-c++ user-interface mfc

我有一个包含4个按钮的简单对话框。 我想更改这4个按钮并使包含4个按钮的ToolBar完全像那些按钮一样。

在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中我没有改变任何东西=>所以我希望得到与之前相同的点击事件

但是,在工具栏中点击没有什么高兴和=>单击时,工具栏按钮显示为灰色。

怎么办? 我做错了什么?

1 个答案:

答案 0 :(得分:0)

使用visual studio 2010,您所遵循的步骤是正确的。

如果您在新的MFC项目中再次尝试,则基于对话框:

  • 添加按钮IDC_BUTTON1
  • 管理点击代码
  • 使用您在此处提出的相同代码添加工具栏

有效吗?