一千萬個為什麽

搜索

MFC:隱藏工具欄按鈕

I'm currently disable certain buttons by handling ON_UPDATE_COMMAND_UI and calling ->Enable( TRUE/FALSE ).

相反,完全隱藏按鈕的最佳方法是什麽?

我嘗試過使用 HideButton ,這使得按鈕圖像不可見,但它仍占用空間,因此在可見按鈕之間存在空白區域。

謝謝。

最佳答案

嘗試在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 );
}

轉載註明原文: MFC:隱藏工具欄按鈕