for i:=0 to 8 do begin
tbbi.cbSize:=SizeOf(TBBUTTONINFO);
tbbi.fsState:=TBSTATE_ENABLED;
tbbi.fsStyle:=TBSTYLE_BUTTON;
tbbi.iImage:=i;
tbbi.pszText:=#0;
tbbi.dwMask:=TBIF_COMMAND or TBIF_STATE or TBIF_STYLE or TBIF_TEXT;
end;
.....
for i:=0 to 8 do
SendMessage(ToolBar, TB_SETBUTTONINFO, IDcommand, longint(@tbbi));
Панель инструментов
Вопрос: Как можно удалить надписи при выборе соответствующего пункта меню и как заново отобразить?
Удалить надписи не составит труда:
Код:
где IDcommand- целочисленный массив идентификаторов кнопок.
После удаления надписей кнопки необходимо уменьшить. Для этого использую следующее сообщение:
Код:
SendMessage(ToolBar, TB_SETBUTTONSIZE, 0, MakeLong(16,16));
Но попытки опять "подписать" кнопки завершаются неудачей. При этом использую следующий код:
Код:
Var tbbi:array[0..8] of TBBUTTONINFO;
[CENTER].....[/CENTER]
for i:=0 to 8 do begin
tbbi.cbSize:=SizeOf(TBBUTTONINFO);
tbbi.fsState:=TBSTATE_ENABLED;
tbbi.fsStyle:=TBSTYLE_BUTTON;
tbbi.iImage:=i;
tbbi.pszText:=PAnsiChar(str);
tbbi.dwMask:=TBIF_COMMAND or TBIF_STATE or TBIF_STYLE or TBIF_TEXT or TBIF_SIZE;
end;
for i:=0 to 8 do begin
tbbi.pszText:=PAnsiChar(str);
SendMessage(ToolBar, TB_SETBUTTONINFO, IDcommand, longint(@tbbi));
end;
[CENTER].....[/CENTER]
for i:=0 to 8 do begin
tbbi.cbSize:=SizeOf(TBBUTTONINFO);
tbbi.fsState:=TBSTATE_ENABLED;
tbbi.fsStyle:=TBSTYLE_BUTTON;
tbbi.iImage:=i;
tbbi.pszText:=PAnsiChar(str);
tbbi.dwMask:=TBIF_COMMAND or TBIF_STATE or TBIF_STYLE or TBIF_TEXT or TBIF_SIZE;
end;
for i:=0 to 8 do begin
tbbi.pszText:=PAnsiChar(str);
SendMessage(ToolBar, TB_SETBUTTONINFO, IDcommand, longint(@tbbi));
end;
где str-массив "подписей к кнопкам".
Тут, конечно, бесполезно посылать сообщение
Код:
SendMessage(ToolBar, TB_ADDSTRING, 0,longint(@str))
так изначально я "подписываю" кнопки, а как известно при таком способе "подписи" строка добавляется в конец внутреннего списка...
Вообщем, как быть?
Возможно, стоит удалять все кнопки и создавать их заново с нужными атрибутами.