如何隐藏工具栏按钮上的文本(TBSTYLE_LIST的TBSTYLE_EX_MIXEDBUTTONS不隐藏文本)

时间:2013-09-01 11:11:53

标签: c winapi toolbar

我按照this article创建了一个简单的工具栏。

我只想让一些按钮旁边有文字,但不是全部。根据MSDN文档over here,我必须将TBSTYLE_EX_MIXEDBUTTONSTBSTYLE_LIST一起使用。所以我将上面示例中的CreateWindowEx调用更改为:

CreateWindowEx(TBSTYLE_EX_MIXEDBUTTONS, TOOLBARCLASSNAME, NULL,
               WS_CHILD | TBSTYLE_LIST, 0, 0, 0, 0, 
               hWndParent, NULL, hInst, NULL);

其他一切都是一样的。即使我仍然只使用BTNS_AUTOSIZE作为我的按钮样式(没有BTNS_SHOWTEXT),它会显示每个按钮旁边的按钮文本。我错过了什么?

我也读过this article about list-style buttons。不幸的是,程序没有解释太多;它只是声明TBSTYLE_LIST将文本向右移动,而对于某些按钮(停止,刷新),文本完全神奇地消失了。但这似乎并不适合我。

2 个答案:

答案 0 :(得分:2)

根据this SO Answer,你需要

a)确保您链接到Common Controls v5.81(或更高版本)

b)使用第一个参数(扩展样式)调用CreateWindowEx()为零

c)致电

SendMessage(hWndToolbar, TB_AUTOSIZE, 0, 0);
SendMessage(hWndToolbar, TB_SETEXTENDEDSTYLE, 0, (LPARAM)TBSTYLE_EX_MIXEDBUTTONS);
ShowWindow(hWndToolbar , SW_SHOW);

稍后启用扩展样式的原因是these extended styles are turned on with a message, not a style flag. Thus the TB_SETEXTENDEDSTYLE message

答案 1 :(得分:1)

扩展工具栏样式需要使用TB_SETEXTENDEDSTYLE消息进行设置,不能传递给CreateWindowEx()

相关问题