当前位置:主页>delphi7/进销存和数据库> 文章内容

怎样隐藏标题栏和主菜单?

发布时间:2010-01-23 | QQ免费站
1楼: 请问怎样像WindowsMediaPlayer那样,自动隐藏标题栏和主菜单?(鼠标移到栏题栏或主菜单的位置时显示,离开隐藏)。我试过把窗体设成bsNone,Menu := nil,但有比较大的闪烁,而且位置也不好控制。可否只是隐藏,而不是去掉? 谢谢。 字串4

2楼: 这下面的代码能达到你要的效果,但不够完善. var Form1: TForm1; sItem:Array of String; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); var i:integer; begin SetLength(sItem,MainMenu1.Items.Count); For i:=0 to MainMenu1.Items.Count-1 do sItem[i]:=MainMenu1.Items[i].Caption; end; procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); var i:Integer; begin if y>=10 then begin ShowWindow(Toolbar1.Handle,0); For i:=0 to MainMenu1.Items.Count-1 do MainMenu1.Items[i].Caption:=‘‘; end else begin ShowWindow(Toolbar1.Handle,1); For i:=0 to MainMenu1.Items.Count-1 do begin MainMenu1.Items[i].Caption:=sItem[i]; end; end; end; 字串4

3楼: 我说的是隐藏标题栏和主菜单,不是隐藏工具栏。就是要让它们透明。

字串1

4楼: 最好能实现两种效果: 一、像MSN的聊天窗口一样,点击客户区左上角的按钮后,去掉标题栏和主菜单,且不出现窗体的任何位置变动、闪烁等,再点一下恢复。 二、像WindowsMediaPlayer那样,自动隐藏标题栏和主菜单,鼠标移到标题栏和主菜单的位置后恢复,移开又隐藏。 请问哪位大侠能帮忙,分不够可以再加。 字串2

5楼: 请各位大侠帮帮忙。小弟不胜感激。
字串2

6楼: 我项
字串3

7楼: 我再顶

字串6

8楼: 各位大侠帮帮忙啊,小弟不胜感激。 字串8

9楼: 顶
字串7

10楼: 顶
字串7

11楼: 我再顶

字串8

12楼: 我再顶 字串2

13楼: MainMenu1.Items.Visible := true; if MainMenu1.Items.Visible then Self.BorderStyle := bsNone else Self.BorderStyle := bsSizeable;
字串5

14楼: 我已经说过了,如果把BorderStyle设成bsNone的话,客户区会扩展到整个窗体,如果再设该Form的长和宽的话,会有比较大的闪动。 我的意思是客户区保持原来的位置、大小不变,直接隐藏标题栏和主菜单,也就是类似透明的效果。 字串3

15楼: 我再顶

字串3

16楼: 我再顶

字串5

17楼: 顶 字串1

18楼: 再顶

字串5

19楼: 顶 字串7

20楼: 捕获鼠标事件,判断鼠标是否在标题栏上,若在则开启计时器(不推荐用TTimer),循环检测鼠标是否移开,若移开则调用重绘标题栏的事件,调用完毕关闭计时器

字串4

21楼: 可否用WM_NCHITTEST事件来判断?如果这样,也不用计时器了,直接捕获该消息来判断鼠标位置好了。 还有,怎样重绘标题栏,以做到标题栏透明?还有主菜单。可否给出代码?谢谢。

字串4

22楼: 还有,不光是标题栏、主菜单,好像WindowsMediaPlayer把窗体四周的Border也隐藏掉了,效果和bsNone几乎一样,但如果光是把窗体设成bsNone,客户区就会占据整个窗体,再调整客户区的大小、位置,就会引起窗体较大的闪动...
字串2

23楼: 我再顶
字串9

24楼: 顶
字串7

25楼: 再顶。真的没人知道吗?
字串6

26楼: 我倒是在CSDN的一个BLOG上看到过一篇文章 ,里面有你要的东西,是什么你自己找吧 http://blog.csdn.net/bob008
字串2

27楼: 我再顶
字串8

28楼: 顶
字串6

29楼: 顶 字串1

30楼: 我再顶 字串9

31楼: 事实上可以用建立不规则窗体的方法来实现,先根据你窗体的内容大体建立一个形状,当然窗体内容有变化时得重新建立这个形状,再然后再你想取消那些东西的时候处理窗口的形状。 WindowsMediaPlayer9好象就是这样做的 字串4

32楼: 帮顶
字串7

33楼: 接受答案了.

字串1