我的情况是这样的:有两个应用程序 A 和 B,其中 B 是一个悬浮在屏幕最顶端的小窗口,相当于是 A 的一个辅助程序。A 和 B 同时启动,当 A 全屏的时候,B 才显露出来,设置 A 的全屏方法如下:lStyle := GetWindowLong(MainForm.Handle, GWL_STYLE);
lStyle := lStyle and (not WS_CAPTION);
SetWindowLong(MainForm.Handle, GWL_STYLE, lStyle);
SetWindowPos(MainForm.Handle, 0, 0, 0, 0, 0, SWP_FRAMECHANGED Or SWP_NOMOVE Or SWP_NOZORDER Or SWP_NOSIZE);
MainForm.SetBounds(0,0,Screen.Width, Screen.Height);此时我把焦点移到 B 的浮动窗口时,操作系统的任务栏就会出现,焦点返回 A 时,任务栏又消失。怎么样才能让焦点在 B 上的时候也不显示任务栏呢?请教^_^又及:我不想使用 ShowWindow 来隐藏任务栏,因为这样会带来其他问题。还有更好的办法吗?谢谢:)
lStyle := lStyle and (not WS_CAPTION);
SetWindowLong(MainForm.Handle, GWL_STYLE, lStyle);
SetWindowPos(MainForm.Handle, 0, 0, 0, 0, 0, SWP_FRAMECHANGED Or SWP_NOMOVE Or SWP_NOZORDER Or SWP_NOSIZE);
MainForm.SetBounds(0,0,Screen.Width, Screen.Height);此时我把焦点移到 B 的浮动窗口时,操作系统的任务栏就会出现,焦点返回 A 时,任务栏又消失。怎么样才能让焦点在 B 上的时候也不显示任务栏呢?请教^_^又及:我不想使用 ShowWindow 来隐藏任务栏,因为这样会带来其他问题。还有更好的办法吗?谢谢:)
解决方案 »
- quick report和query的使用?
- 用fastreport的frxPreview控件预览报表时,出现发生下列的错误:List index out of bounds (-1)Stack overflow
- 关于日期查询的
- 关于从已经存在的Form进行继承的问题
- ListView 如何出现标题栏??????????????
- [原创]我创建了一个QQ群,希望大家进来交流程序设计问题2800568
- String 与Array \word\int赋值问题
- 有谁用过windows2000下数据保密API(DPAPI),如CryptProtectData?
- 一个小问题关于Qreport如何报表的?
- 我下载了一个反向编译Delphi exe程序的软件,对某Delphi exe程序反编译后给出……
- 我不记得在delphi下,如何使用链表了。请高手帮忙,我只有20分。倾禳相送。
- 处理日期的一个简单例子
就是说让任务栏一直显示?可这样就不是全屏了:)
procedure CreateParams(var Params: TCreateParams); override;procedure TForm1.CreateParams(var Params: TCreateParams);
begin
//总在最前
inherited CreateParams(Params);
Params.WndParent := A的MainForm.Handle;
...
end;这样焦点到 B 的时候就不会出现任务栏了,但是此时发现,如果 A 弹出一些 ShowMessage 对话框,这些对话框会藏在后面看不见,导致整个程序像没响应一样。能避免这种情况吗?
=============================================哈,说错了,应该是:
Form的高度=screen的高度-任务栏的高度
begin
self.BorderStyle:= bsNone;
self.FormStyle:= fsStayOnTop;
self.WindowState:= wsMaximized;
end;
这个呢???
嗯,这种全屏方式程序很简单,不错。不过仍然存在鼠标点到 B 窗口上,任务栏就会出现的问题:~(
B窗口显示的时候
windows.setparent(ch,bh);
showwindow();ch为B的窗口,bh为A窗口句柄
我做了一个最简单的例子,用你这种方法全屏后,接着显示另一个窗体,焦点在另一个窗体上不会出现任务栏。
想请问你的 个悬浮在屏幕最顶端的小窗口 你是怎么实现的 问题应该在这B窗口上吧
lStyle := GetWindowLong(self.Handle, GWL_STYLE);
lStyle := lStyle and (not WS_CAPTION);
SetWindowLong(self.Handle, GWL_STYLE, lStyle);
SetWindowPos(self.Handle, 0, 0, 0, 0, 0, SWP_FRAMECHANGED Or SWP_NOMOVE Or SWP_NOZORDER Or SWP_NOSIZE);
self.SetBounds(0,0,Screen.Width, Screen.Height);
fm:=Tform2.Create(self) ;
fm.Show ;