MFC:隐藏工具栏按钮

时间:2010-09-15 04:00:25

标签: c++ mfc

我目前通过处理ON_UPDATE_COMMAND_UI并致电->Enable( TRUE / FALSE )来禁用某些按钮。

完全隐藏按钮的最佳方法是什么?

我尝试使用HideButton并使按钮图像不可见,但它仍占用空间,因此可见按钮之间有一个空白区域。

感谢。

2 个答案:

答案 0 :(得分:0)

尝试在HideButton();

之后调用toolbar.SendMessage(TB_AUTOSIZE);

我建议在OnUpdateCommandUI以外的地方显示/隐藏这些按钮,因为这些按钮经常出现并可能导致闪烁。虽然不是MFC我有类似的代码可以工作:

void HideToolbarButton(HWND toolbar, UINT command_id)
{
    TBBUTTONINFO tbinfo;
    tbinfo.cbSize = sizeof(tbinfo);
    tbinfo.dwMask = TBIF_STATE;
    tbinfo.state  = TBSTATE_HIDDEN;
    SendMessage(toolbar, TB_SETBUTTONINFO, command_id, (LPARAM)&tbinfo );
}

答案 1 :(得分:0)

如果要隐藏工具栏特定按钮,请使用此代码。

m_wndToolBar.GetToolBarCtrl().HideButton(ID_TOOLBAR1,TRUE);

这里m_wndToolBar是一个ToolBar对象。      ID_TOOLBAR1是您要隐藏该按钮控件的按钮。