我目前通过处理ON_UPDATE_COMMAND_UI
并致电->Enable( TRUE / FALSE )
来禁用某些按钮。
完全隐藏按钮的最佳方法是什么?
我尝试使用HideButton
并使按钮图像不可见,但它仍占用空间,因此可见按钮之间有一个空白区域。
感谢。
答案 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是您要隐藏该按钮控件的按钮。