如何保持窗口不被最小化(200分)

  • 主题发起人 主题发起人 zkktom
  • 开始时间 开始时间
Z

zkktom

Unregistered / Unconfirmed
GUEST, unregistred user!
在delphi里面,我建立了一个程序。现在把代码复制如下:
/////////////////////////////////////////////////工程
Application.Initialize;
Application.CreateForm(Tfmmain, fmmain);
Application.CreateForm(TFmwait, Fmwait);
Application.CreateForm(TFmIcon, FmIcon);
Application.CreateForm(TDm, Dm);
Application.Run;
////////////////////////////////////主窗体create内容。
var
i:integer;

begin
if ParamCount>0 then
begin
czyid:=strtoint(ParamStr(1));
end; //传递程序运行参数。
SetWindowLong(Application.Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);//隐藏
///////////////////////////////////////////////////////////////////
我现在只能让程序不出现在任务栏上,但在右下角出现个图标。
我的窗体取消了最小功能,但是当我按下WINDOWS自带的最小化按钮时(DESKTOP),
我的窗口就被隐藏了,请教高手帮我提个方法!谢谢
 
我用你的方法测试了一下,将一个Form的最小化按钮取消,运行后,右下角没出现什么图标,工程代码如下:
program Project1;

uses
Forms,Windows,
Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
SetWindowLong(Application.Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);
Application.Run;
end.
--在按Win+M最小化所有窗口时,它并没有最小化。不知道你按的是什么键。
 
回复:tangxiaochun,
当我按下WINDOWS自带的最小化按钮时(DESKTOP)时窗体会不见的,按Win+M当然是不会最小化的!还有你说的右下角的图标没有出现,是我没有把代码上传罢了!
 
你不是指的是‘显示桌面’吧
 
解决了 兄弟 我忘记给主窗体设置了
只要设置alwaysontop就ok在! 还是谢谢你!
 
不过还有一个问题出现了,它现在出现在所有窗体的前面了,
我的目的主要是开发象一个VISTA辅助小工具的那种程序!~
 
不知道用钩子能否实现
 
private
procedure WMSysCommand(var Message:Tmessage);message WM_SYSCOMMAND;

procedure TForm1.WMSysCommand(var Message:Tmessage);
begin
if Message.WParam=SC_MINIMIZE then
begin
if Form1.Showing then
Form1.Hide;
end else
inherited;
end; 不知道是不是你想要的
 
TO xiaojun5556,
不是的 我测试了   不过我看到网上是说窗体创建时父亲是桌面就可以了
但是我不会呢。
 
type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
procedure CreateParams(var Params:TCreateParams);override;
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.CreateParams(var Params: TCreateParams);
begin
inherited;
Params.ExStyle := Params.ExStyle or WS_EX_TOPMOST or WS_EX_TOOLWINDOW;
Params.WndParent := 0;
end;

end.
 
有两种办法 一种是将窗体最小化的按钮取消了 也就是窗体bordericons属性里的biminmize属性改为false,还有种办法就是将窗体顶部的按钮全部取消 将窗体的borderstyle属性改为None
 
后退
顶部