1

我有一个包含 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 我没有更改任何内容 => 所以我想获得与以前相同的 Click 事件

但不幸的是,在工具栏中单击没有发生任何事情 => 并且工具栏按钮在单击时显示为灰色。

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

4

1 回答 1

0

您遵循的过程对于 Visual Studio 2010 是正确的。

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

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

它有效吗?

于 2012-09-19T12:48:45.243 回答