想问一下关于无标题窗口的最小化(100分)

  • 主题发起人 主题发起人 kuerten
  • 开始时间 开始时间
K

kuerten

Unregistered / Unconfirmed
GUEST, unregistred user!
我的程序只有一个窗体,borderstyle=NONE,最小化后会缩到桌面的左下角,
如何令它如正常窗体一样缩到任务栏?
 
用Sendmessage发送消息吧
 
加个按钮
procedure TForm1.Button1Click(Sender: TObject);
begin
PostMessage(application.handle,WM_SYSCOMMAND,SC_MINIMIZE,0);

end;
 
const
WM_MIDASICON = WM_USER + 1;
procedure ModifyTrayIcon(Action:DWORD);//圖標加入窗口右下角
var
l_NIData : TNotifyIconData;
begin
try
With l_NIData do
begin
cbSize := Sizeof(TNotifyIconData);
uID := 0;
uFlags := NIF_MESSAGE or NIF_ICON or NIF_TIP;
Wnd := Handle;
uCallBackMessage := WM_MIDASICON;
hIcon := Application.Icon.Handle;
StrPCopy(szTip,Application.Title);
end;
Shell_NotifyIcon(Action,@l_NIData);
except;
end;
end;
 
可以加一个事件来发送最小化的消息!
 
...
private
procedure WMSysCommand(var Message: TWMSysCommand);message WM_SYSCOMMAND;//
......

procedure TForm1.WMSysCommand(var Message: TWMSysCommand);
begin
Inherited;
//最小化
if (Message.CmdType and $FFF0 = SC_MINIMIZE) then
Showwindow(Form1.Handle,sw_hide);
end;
 
做一个按钮,然后加入
sendmessage(handle,WM_SYSCOMMAND,SC_MINIMIZE,0);
 

Similar threads

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