求"最小化窗体后,图标显示在任务栏右面"的源码,类似于QQ,网络蚂蚁等工具,双击后仍可以还原.
解决方案 »
- 基础扫盲:请问什么是接口
- Ehlib下的bug,DBEditEh的ReadOnly属性设置了,但是编辑框还是能输入?:)
- 如何在dephi中读写注册表
- 请问哪里可以下载DELPHI 6中文帮助
- 请问大虾们,我编程用的数据库是paradox数据库,而最后上报的数据库是fox数据库,怎么通过编程直接将paradox数据库转换成fox数据库。不使
- 请问大家认为最好的报表控件是什么啊?
- 异乡的女友今天生日,各位同仁们谁手里有比较漂亮或特别有趣的贺卡?请斑竹手下留情,拜托了!
- 新手问题:怎样在运行期更改一个字段的名称?
- 搞不懂,是Delphi真的可以这样用,还是别的什么??谁帮我解释一下,谢谢了。
- 怎么生成*.exe文件啊
- 文件拷备问题~!!我没分了,只有10分。
- 如何隐藏任务栏上自己的程序按钮?
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Menus,shellapi;type
//----------------------------------------------------------------------
PNotifyIconData = ^TNotifyIconDataA;
TNotifyIconDataA = record
cbSize : DWORD;
Wnd : HWND;
uID : UINT;
uFlags : UINT;
uCallbackMessage : UINT;
hIcon : HICON;
szTip : array [0..63] of AnsiChar;
end;
//----------------------------------------------------------------------
TForm1 = class(TForm)
PopupMenu1: TPopupMenu;
open1: TMenuItem;
close1: TMenuItem;
N1: TMenuItem;
about1: TMenuItem;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure open1Click(Sender: TObject);
procedure close1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
//-------------------------------------------------------------
IconData: TNotifyIconData;
procedure ShowIcon;
procedure IconOnClick(var message:TMessage); message WM_USER+1;
Procedure WMSysCommand(Var message : TMessage) ; Message WM_SYSCOMMAND ;
//-------------------------------------------------------------
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.DFM}procedure TForm1.IconOnClick( var message: Tmessage);
var p : TPoint;
begin
if (message.lParam = WM_LBUTTONDOWN) then
begin
ShowWindow(Handle, SW_SHOW );
end;
if (message.lParam = WM_RBUTTONDOWN) then
begin
GetCursorPos(p);
SetForegroundWindow (Application.Handle); //<-------------------avoid a little bug.
Application.ProcessMessages;
popupmenu1.Popup( p.x ,p.y );
end;
end;Procedure TForm1.WMSysCommand(Var Message : TMessage) ;
begin if (Message.WParam = SC_MINIMIZE) then
begin
ShowIcon;
end
else
Inherited;end;procedure TForm1.ShowIcon;
begin
IconData.cbSize := SizeOf( IconData );
IconData.Wnd := Handle;
IconData.uID := 1;
IconData.uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP;
IconData.uCallBackMessage := WM_USER+1;
IconData.hIcon := application.Icon.Handle;
IconData.szTip := 'LANChat';
Shell_NotifyIcon( NIM_ADD, @IconData );
ShowWindow(Handle, SW_HIDE);
hide;
end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Shell_NotifyIcon( NIM_DELETE, @IconData );
end;procedure TForm1.open1Click(Sender: TObject);
begin
Form1.Show;
end;procedure TForm1.close1Click(Sender: TObject);
begin
Form1.close;
end;procedure TForm1.FormShow(Sender: TObject);
begin
showwindow(application.handle,sw_hide);
end;procedure TForm1.FormCreate(Sender: TObject);
begin
showicon;
end;end.