Читаю MSDN: BTNS_SHOWTEXT Version 5.81. Specifies that button text should be displayed. All buttons can have text, but only those buttons with the BTNS_SHOWTEXT button style will display it. This button style must be used with the TBSTYLE_LIST style and the TBSTYLE_EX_MIXEDBUTTONS extended style. If you set text for buttons that do not have the BTNS_SHOWTEXT style, the toolbar control will automatically display it as a ToolTip when the cursor hovers over the button. This feature allows your application to avoid handling the TBN_GETINFOTIP notification for the toolbar. Из описания, как я понял, следует: если не устанавливать указанные флаги, но добавить текст, то подпись к кнопке не должна отображаться (она должна отображаться только как подсказка). Но у меня добавленный текст выводится на кнопке. В приложении включена поддержка визуальных стилей 6-й версии (манифест в ресурсах). Имею такой код (VC2003SP1): Код (Text): // Создаем окно панели инструментов HWND hWndToolbar; // Флаг TBSTYLE_EX_MIXEDBUTTONS и ни один из флагов TBSTYLE_FLAT или TBSTYLE_FLAT не устанавливаем!!! CreateWindowEx(0, TOOLBARCLASSNAME, NULL, WS_CHILD, 0, 0, 0, 0, hWndParent, (HMENU)ID_TOOLBAR, hInstance, 0); // Создаем и наполняем список изображений из ресурса иконок для кнопок панели инструментов HIMAGELIST hImageList = ImageList_Create(32, 32, ILC_COLOR32 | ILC_MASK, 2, 0); HICON hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(ID_1)); ImageList_AddIcon(hImageList, hIcon); hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(ID_2)); ImageList_AddIcon(hImageList, hIcon) SendMessage(hWndToolbar, TB_SETIMAGELIST, (WPARAM)0, (LPARAM)hImageList) // Добавляем на панель инструментов кнопки PTBBUTTON ptbButton[2] = { // Флаг BTNS_SHOWTEXT не устанавливаем, но текст добавляем!!! {0, ID_1, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, MAKEINTRESOURCE(ID_1)}, {1, ID_2, TBSTATE_ENABLED, BTNS_BUTTON, {0}, 0, MAKEINTRESOURCE(ID_2)}, } SendMessage(hWndToolbar, TB_BUTTONSTRUCTSIZE, sizeof(TBBUTTON), (LPARAM)0); SendMessage(hWndToolbar, TB_ADDBUTTONS, (WPARAM)(UINT)2, (LPARAM)(PTBBUTTON)&tbButton) // Подгоняем размер и отображаем панель инструментов SendMessage(hWndToolbar, TB_AUTOSIZE, (WPARAM)0, (LPARAM)0); ShowWindow(hWndToolbar, SW_SHOW); Пробывал устанавливать флаги TBSTYLE_EX_MIXEDBUTTONS и TBSTYLE_FLAT для hWndToolbar, результат тот же.
Не там роешь. Код (Text): rcToolButtons LABEL TBBUTTON TBBUTTON <STD_FILENEW, IM_CREATE, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, nil> TBBUTTON <STD_FILEOPEN, IM_OPEN, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, nil> TBBUTTON <STD_FILESAVE, IM_SAVE, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, nil> TBBUTTON <0, 0, TBSTATE_ENABLED, TBSTYLE_SEP, 0, 0, nil> TBBUTTON <STD_PRINT, IM_PRINT, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, nil> TBBUTTON <0, 0, TBSTATE_ENABLED, TBSTYLE_SEP, 0, 0, nil> TBBUTTON <15+0, IM_PUPILS, TBSTATE_ENABLED or TBSTATE_CHECKED, TBSTYLE_CHECKGROUP, 0, 0, nil> TBBUTTON <15+1, IM_TEACHERS, TBSTATE_ENABLED, TBSTYLE_CHECKGROUP, 0, 0, nil> TBBUTTON <0, 0, TBSTATE_ENABLED, TBSTYLE_SEP, 0, 0, nil> TBBUTTON <15+2, IM_PLAN, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, nil> TBBUTTON <0, 0, TBSTATE_ENABLED, TBSTYLE_SEP, 0, 0, nil> TBBUTTON <15+3, IM_CREATERASP, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, nil> cbToolButtons = $-rcToolButtons szToolClass DB "ToolbarWindow32",0 .... .IF EAX == WM_CREATE m2m hMain, Handle PUSH EDI INVOKE CreateWindowEx, 0, OFFSET szToolClass, nil, WS_CHILD or WS_VISIBLE or TBSTYLE_FLAT or TBSTYLE_TOOLTIPS or CCS_TOP, 0, 0, 500, 40, Handle, 0, HInstance, nil MOV EDI, EAX INVOKE SetWindowLong, EDI, GWL_ID, ID_TOOLBAR INVOKE SendMessage, EDI, TB_BUTTONSTRUCTSIZE, SIZEOF TBBUTTON, 0 INVOKE SendMessage, EDI, TB_SETBITMAPSIZE, 0, 16 shl 16 + 16 PUSH IDB_STD_SMALL_COLOR ; [TBADDBITMAP] .nID PUSH HINST_COMMCTRL ; [TBADDBITMAP] .hInst INVOKE SendMessage, EDI, TB_ADDBITMAP, 15, ESP ADD ESP, SIZEOF TBADDBITMAP PUSH hToolImg ; [TBADDBITMAP] .nID PUSH NULL ; [TBADDBITMAP] .hInst INVOKE SendMessage, EDI, TB_ADDBITMAP, TOOL_BITMAPSCOUNT, ESP ADD ESP, SIZEOF TBADDBITMAP INVOKE SendMessage, EDI, TB_SETBUTTONSIZE, 0, 22 shl 16 + 23 INVOKE SendMessage, EDI, TB_ADDBUTTONS, cbToolButtons / SIZEOF TBBUTTON, OFFSET rcToolButtons .ELSEIF EAX == WM_NOTIFY MOV EAX, lParam assume EAX: PTR TOOLTIPTEXT .IF [EAX].hdr.code == TTN_NEEDTEXT m2m [EAX].hinst, HInstance m2m [EAX].lpszText, [EAX].hdr.idFrom .ENDIF assume EAX: nothing XOR EAX, EAX .... В ресурсах нужно создать ресурс string (1 если строки с 1 по 15, 2 - если с 16 по 31, и т.д.) Номер строки соответствует первому параметру структуры. Вот хинт и готов