首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

两种Dropdown工具栏按钮 成功了 散分解决方法

2012-03-26 
两种Dropdown工具栏按钮 成功了 散分之前发了一个帖子http://topic.csdn.net/u/20101214/22/6228f14a-4690

两种Dropdown工具栏按钮 成功了 散分
之前发了一个帖子http://topic.csdn.net/u/20101214/22/6228f14a-4690-4589-8375-9f97d3ece0c0.html,等了两天没有得到答案。很久很多次想要这个效果,今天开了个夜车终于自己解决了。分享、庆祝、散分!
效果如下图:


百度上搜到的一篇博文证明了我的想法是实际存在的
“下拉按钮有两种样式:
1、在按钮的右边显示箭头,两者之间有间隔,单击按钮的时候象其它正常
按钮一样,发送的是WM_COMMAND消息,只有在单击箭头的时候才发送TBN_DROPDOWN 消息,弹出下拉
菜单。这种按钮使用比较多,需要 4.72 版(IE 4.01 和Win98以后)支持。
2、在按钮的图案右边显示一个箭头,单击按钮的时候,整个按钮都下沉,并且弹出下拉菜单。需要
添加BTNS_WHOLEDROPDOWN属性,版本要求比较高,需要 5.80版Comctl32.dll(IE 5)支持。”
(摘自書童自留地 工具条研究手记7)
注意到BTNS_WHOLEDROPDOWN这个常量,发现CommCtrl.pas里已经定义好了,只是Delphi没有使用到。于是动手修改了ComCtrls.pas的TToolBar.UpdateItem方法,果然成功了!


[解决办法]
学习,恭喜楼主解决了问题
[解决办法]
楼主精神可嘉,恭喜
[解决办法]
恭喜楼主自己实现了。
[解决办法]
恭祝樓主,接點分。
[解决办法]
不是有第三方控件可以直接实现吗?
[解决办法]
支持自己动手,接分
[解决办法]
恭喜楼主
[解决办法]
实用的,我去试试
[解决办法]
GX JF
[解决办法]
学习了,恭喜楼主解决了问题
[解决办法]
首先祝贺,然后,楼主,贴点儿代码出来,让我们see一see,学一学啊。
[解决办法]
首先祝贺,然后,楼主,贴点儿代码出来,让我们see一see,学一学啊。
[解决办法]
楼主把代码及具体方法共享一下。
[解决办法]
恭祝樓主,接點分。
[解决办法]
还真是执着,精神可嘉。
[解决办法]
楼主能分享否
[解决办法]
恭喜楼主,贺喜楼主!
[解决办法]
恭喜楼主,自己解决了这个难题
[解决办法]
膜拜在
[解决办法]

探讨
恭祝樓主,接點分。

[解决办法]
探讨
多谢大家!
今天上班迟到了,以后得早睡早起!

[解决办法]
感谢分享
[解决办法]
楼主是自学的天才啊,恭喜了。
[解决办法]

[解决办法]
膜拜在

[解决办法]

[解决办法]
大家好

[解决办法]


恭喜楼主,大家都要向楼主学习,自己动手解决问题!
[解决办法]
接分不积极,升钻不靠谱
[解决办法]
恭喜楼主,领分了
[解决办法]
我在(?墙)丶刻下你的名。
[解决办法]
楼主帖出代码,大家look look啊
[解决办法]
楼主帖出代码,大家look look啊
[解决办法]
不错 楼主帖出代码,大家look look啊
[解决办法]
恭喜楼主,不知道是否今天睡意盎然啊:)
[解决办法]
恭喜楼主把烦恼解决了!
[解决办法]
呵呵,不错不错,恭喜楼主了。嘿嘿
[解决办法]
有时候灵感就是那么一回事,不经意间的问题就想通了。
[解决办法]
恭喜楼主阿!
[解决办法]
LZ真拼啊...通宵弄。
[解决办法]
LZ真狠

[解决办法]
精神可嘉
[解决办法]
把源代码放出供大家学习一下啊
[解决办法]
楼主好样的!
[解决办法]
恭喜楼主自己实现了。
[解决办法]
支持了啊,学习一下,呵呵
[解决办法]
认真学习,好样的
[解决办法]
jf^
[解决办法]
自己动手,丰衣足食
[解决办法]
楼主无需修改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;
[解决办法]
感谢!!!
[解决办法]
可喜可贺!
[解决办法]
恭喜楼主,顺便学习了。
[解决办法]
恭喜恭喜 顺便拿分
[解决办法]
恭喜楼主解决了问题.
------解决方案--------------------


恭喜了
[解决办法]
恭喜楼主啊
[解决办法]
楼主精神可嘉,恭喜!!
[解决办法]
谢谢楼主啊
[解决办法]
学习了,谢谢楼主!!!
[解决办法]
楼主很棒

热点排行