给Delphi的工具条按钮添加BTNS_WHOLEDROPDOWN风格
2010-12-17 17:24
519 查看
工具条按钮的BTNS_WHOLEDROPDOWN风格是IE5以后就提供的.
Delphi早期版本估计是为了照顾兼容性工具条按钮是没有这个风格的.只有下面几种和系统风格对应的风格.
TToolButtonStyle = (tbsButton, tbsCheck, tbsDropDown, tbsSeparator,
tbsDivider, tbsTextButton);
后面尽管IE5以下根本没人用了,但是Delphi的开发人员都忘了添加一种WholeDropDown风格来对应这种风格..
CSDN网友
xiedewei
提了这个问题.并且修改VCL源代码解决了这个问题.但是修改VCL源代码毕竟不是一件一劳永逸的事情.以后新版VCL源代码还要改,所以我在这里提供了一种更简单的方式.直接可以设置.
uses
CommCtrl;
//设置工具条某个按钮为BTNS_WHOLEDROPDOWN样式
function SetBtnWholeDropdown(tb : TToolBar; BtnIndex : Integer) : boolean;
var
btnInfo : TTBBUTTONINFO;
r : Integer;
e : Integer;
begin
ZeroMemory(@btnInfo, sizeof(btnInfo));
btnInfo.cbSize := sizeof(btnInfo);
btnInfo.dwMask := TBIF_STYLE;
//返回值是按钮的索引
if tb.Perform(TB_GETBUTTONINFO, BtnIndex, WParam(@btnInfo)) < 0 then
begin
Result := False;
end
else
begin
btnInfo.fsStyle := btnInfo.fsStyle and (not BTNS_DROPDOWN)or BTNS_WHOLEDROPDOWN;
//非零就是成功
Result := tb.Perform(TB_SETBUTTONINFO, BtnIndex, WParam(@btnInfo)) <> 0;
end;
end;
Delphi早期版本估计是为了照顾兼容性工具条按钮是没有这个风格的.只有下面几种和系统风格对应的风格.
TToolButtonStyle = (tbsButton, tbsCheck, tbsDropDown, tbsSeparator,
tbsDivider, tbsTextButton);
后面尽管IE5以下根本没人用了,但是Delphi的开发人员都忘了添加一种WholeDropDown风格来对应这种风格..
CSDN网友
xiedewei
提了这个问题.并且修改VCL源代码解决了这个问题.但是修改VCL源代码毕竟不是一件一劳永逸的事情.以后新版VCL源代码还要改,所以我在这里提供了一种更简单的方式.直接可以设置.
uses
CommCtrl;
//设置工具条某个按钮为BTNS_WHOLEDROPDOWN样式
function SetBtnWholeDropdown(tb : TToolBar; BtnIndex : Integer) : boolean;
var
btnInfo : TTBBUTTONINFO;
r : Integer;
e : Integer;
begin
ZeroMemory(@btnInfo, sizeof(btnInfo));
btnInfo.cbSize := sizeof(btnInfo);
btnInfo.dwMask := TBIF_STYLE;
//返回值是按钮的索引
if tb.Perform(TB_GETBUTTONINFO, BtnIndex, WParam(@btnInfo)) < 0 then
begin
Result := False;
end
else
begin
btnInfo.fsStyle := btnInfo.fsStyle and (not BTNS_DROPDOWN)or BTNS_WHOLEDROPDOWN;
//非零就是成功
Result := tb.Perform(TB_SETBUTTONINFO, BtnIndex, WParam(@btnInfo)) <> 0;
end;
end;
相关文章推荐
- vc6.0为工具条上的按钮添加下三角下拉菜单
- Delphi组件开发-在窗体标题栏添加按钮
- Eclipse工具条中添加下拉按钮
- Smart Client 学习笔记(02):添加工具条按钮
- 转 ABAP 修改ALV 工具条--添加、移除按钮
- Delphi组件开发-在窗体标题栏添加按钮(使用MakeObjectInstance(NewWndProc),并处理好多消息)
- 修改ALV 工具条,在ALV toolbar上添加、移除按钮
- 实战ALV OO技术实现添加工具条按钮
- MFC添加工具条(Toolbar)按钮并加入事件
- 向工具条按钮添加图片
- 用VC在IE浏览器的工具条上添加命令按钮(转 可以借鉴)
- 为MFC的工具条按钮添加提示文字
- MFC基于对话框风格按钮控件添加图片的方法(大神止步)
- 添加“继续分享”工具条功能 – 社会化分享按钮
- Delphi自写组件:可设置颜色的按钮(改成BS_OWNERDRAW风格,然后CN_DRAWITEM)
- 图解使用Win8Api进行Metro风格的程序开发五----在系统的设置窗口添加按钮
- CMFCToolBar工具条添加下拉菜单按钮
- delphi添加{$R WindowsXP},控件具有系统主题风格
- MFC工具条CToolBar添加非按钮控件CComboBox
- VC/Wince 实现仿Win8 Metro风格界面3——按钮移动交换、删除、添加快捷方式(附效果图)