关于Office97风格菜单和工具栏的几个问题(50分)

  • 主题发起人 主题发起人 Fuweng
  • 开始时间 开始时间
F

Fuweng

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大侠:
大家好!
我今天在做Office97风格菜单和工具栏时遇到几个问题,请帮助解决一下.我是用CoolBar和
ToolBar做的.不知怎么,我不太喜欢ControlBar的双竖杠风格,所以您回答问题时不要推荐我使用
ControlBar.
问题1:
我们都知道,这种风格的工具栏可以被拖出来变成一个小窗口,小窗口的右上角处有一个
关闭按钮(就是"X"按钮),请问如何将这个按钮屏蔽掉(使其不显示出来),或将其变灰(使
其失效)?
问题2:
我认为将工具栏拖出来"应该"有三种方法:(应该:我加了双引号表示一相情愿,有可能某些
方法就是实现不了)
[1] 用鼠标按住工具栏左边的"单竖杠突起".
但我试过了,这种方法只能将工具栏在CoolBar所在的范围里拖动,无法拖出来!请问
有没有解决办法?因为Word2000就可以.
[2] 用鼠标按住工具栏中的分隔线(就是ToolBar的New Separator)
这种方法可以,看来是标准用法.
[3] 用鼠标按住工具按钮以外的空白处
非常奇怪!用这种方法只能用一次,第二次就不好使了!请问这是怎么回事?因为有时
我并不想用ToolBar的New Separator.怎么解决?

这里先谢过了!!
 
你好, 我也遇到过你的问题,我已经解决了。
你的问题 一,不一定要不给别人关,ToolBar有一个事件,就 是那个X的,那个X被click时,
事件被激活。X被click,其实,是把TollBar的Visable设为false,只要在那个事件中把他的
Visable设为True就行了。(具件 的事件名称我忘了,你看着办吧).
第二问题我要看看再说(因为最近学习太忙了,有一个月滑 真的编程了,有些...)
 
你的Toolbar的拖动类型是不是Dock的?如果是设成Dock,第1和第3种方法就能
把工具栏可以被拖出来变成一个小窗口。
 
CoolBar是拖不出来的,
你还得用ControlBar,不然自己写个好了
 
首先,非常感谢几位的发言!
to cgh0717:
你的方法实际上是换了个思路,变向地解决了第一个问题。但这样不能另我满意!因为VC++6的
菜单栏就已经做到了将"x"按钮变灰。
to 铭心侠:
我正是将Toolbar的拖动类型设为Dock的,效果如题目。
to 程云:
你说的不对!
ToolBar1->DragKind = dkDock;
ToolBar1->DragMode = dmAutomatic;
CoolBar1->DockSite = true;
通过上面的设置,就可以把ToolBar拖出CoolBar。

to all:
此问题不是想象的那样简单,还请各位多多关注!谢谢!!
 
程云说得没错啊,只能把ToolBar拖出来,coolbar本身是拖不出来的

想让toolbar关闭按钮失效,我也没试过,你看能不能试着向toolcat的窗口
发个message,把关闭按钮屏弊掉?

 
to 左轻侯:
麻烦你帮忙好好想一想!谢谢!!
 
用CoolBar很难办到你的要求,不如去www.inprises.com去下载Devexpress EBar3.1 Source
吧,肯定能达到你的要求。
 
难道没人会吗?
 
To FuWeng:
第1个问题,"dq"大虾是这样指点的:
在ToolBar的EndDock事件里——
procedure TForm1.ToolBar1EndDock(Sender, Target: TObject; X, Y: Integer);
var
H: THandle;
begin
H := GetParent(ToolBar1.Handle);//ToolBar在拖出来之后被“套进”另一个窗口里了
if H <> ControlBar1.Handle then begin//以下的操作都是针对这个临时的父窗口的
SetWindowLong(H, GWL_STYLE, GetWindowLong(H, GWL_STYLE) and not WS_SYSMENU);//把它的关闭按钮去掉
ShowWindow(H, SW_HIDE);//这两句是为了让它刷新,使关闭按钮马上消失
ShowWindow(H, SW_SHOW);//如果没有这两句,必须移动一下或者调整一下大小才行
end;
end;

 
To Fuweng:
是不是要再加一条问题,拖出来的工具条如何放回原位?假如CoolBar的AutoSize设
为True的话。
另外,我觉得CoolBar本来就是让你做出类似IE风格的工具栏,做Office风格还是不
要用它吧!
 
to youhard:
非常感谢你!
问题并没有完全解决,但已经有了很大的进展,我正在研究.
BTW: "dq"大虾是谁,能否介绍认识一下.
再BTW: 按"x"按钮到底是触发的是哪个事件?
 
大家为什么老是在讨论OFFICE的BAR?
去DOWN个DEVBAR或者OFFCE97BAR的元件,不就全部OK了吗?

 
动不动就down个这down个那的什么控件,都是Delphi这么好的工具把你们惯坏了!
什么时候都要现成的,自己不肯多动一下脑筋.
 
多人接受答案了。
 
问题2:
[3] 用鼠标按住工具按钮以外的空白处
非常奇怪!用这种方法只能用一次,第二次就不好使了!请问这是怎么回事?因为有时
我并不想用ToolBar的New Separator.怎么解决?


A; 令toolbar 不 autoresize
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部