DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: hfh9801
今日帖子: 5
在线用户: 37
导航: 论坛 -> 论坛精华贴 斑竹:liumazi,iamdream  
作者:
男 gxwzhjc (小黄) ★☆☆☆☆ -
盒子活跃会员
2003/4/25 9:25:46
标题:
怎么判断用户按了最小化 浏览:4753
加入我的收藏
楼主: 高手们,我想防网际快车和FOXMAIL哪像当用户按了最小化时就只在托盘中有图标,我已把图标放进托盘了,但不懂哪个属性可以判断到用户按了最小化,还有怎么才能把同时把任务栏中的也去掉。我不懂,我请教!
----------------------------------------------
-
作者:
女 123 (猪猪) ★☆☆☆☆ -
盒子活跃会员
2003/4/25 11:04:52
1楼: 实现托盘程序最大最小化动态效果
    windows本身在最大最小化程序时有动态效果,但只对普通程序有效,而对托盘程序没有类似的效果,然而我们可以通过DrawAnimatedRects函数简单的实现最好效果。这个函数只需要指定窗口句柄和动态起始的和结束的两个矩形区域就可以了。

unit TestForm;

interface

uses
  Windows, Classes, Forms, Controls, StdCtrls, ExtCtrls;

type
  TZoomAction = (zaMinimize, zaMaximize);
  TfrmTest = class(TForm)
  procedure FormClose(Sender: TObject; var Action: TCloseAction);
  procedure FormShow(Sender: TObject);
  private
  { Private declarations }
  public
  { Public declarations }
  end;

var
  frmTest: TfrmTest;

implementation

{$R *.DFM}

procedure ZoomEffect(theForm: TForm; theOperation: TZoomAction);
var
  rcStart: TRect;
  rcEnd: TRect;
  rcTray: TRect;
  hwndTray : hWnd;
  hwndChild: hWnd;
begin
  { Find the system tray area bounding rectangle }
  hwndTray := FindWindow('Shell_TrayWnd', nil);
  hwndChild := FindWindowEx(hwndTray, 0, 'TrayNotifyWnd', nil);
  GetWindowRect(hwndChild, rcTray);
  { Check for minimize/maximize and swap start/end}
  if theOperation = zaMinimize then
  begin
  rcStart := theForm.BoundsRect;
  rcEnd := rcTray;
  end
  else
  begin
  rcEnd := theForm.BoundsRect;
  rcStart := rcTray;
  end;
  { Here the magic happens... }
  DrawAnimatedRects(theForm.Handle, IDANI_CAPTION, rcStart, rcEnd)
end;

procedure TfrmTest.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  ZoomEffect(Self, zaMinimize);
end;

procedure TfrmTest.FormShow(Sender: TObject);
begin
  ZoomEffect(Self, zaMaximize);
end;
end.
----------------------------------------------
-
作者:
男 gxwzhjc (小黄) ★☆☆☆☆ -
盒子活跃会员
2003/4/25 13:19:13
2楼: 1楼的高手,我试了你的代码,不知是不是我太猪了,还是代码哪里错了,我按最小化和平常一样,但按关闭成了我想要的效果了,但我想要的是最小化时才现在这种效果。请楼上的多多指教啊!我不懂,我请教~
----------------------------------------------
-
作者:
女 123 (猪猪) ★☆☆☆☆ -
盒子活跃会员
2003/4/25 13:33:39
3楼: 放一个TApplication的组件,在onminmize事件写入:
  ZoomEffect(Self, zaMinimize);
----------------------------------------------
-
作者:
男 nptch (nptch) ★☆☆☆☆ -
盒子活跃会员
2003/4/25 14:14:04
4楼: 用我的控件自动实现任何程序托P.
----------------------------------------------
-
作者:
男 gxwzhjc (小黄) ★☆☆☆☆ -
盒子活跃会员
2003/4/26 10:34:21
5楼: 谢谢!1楼的高手,效果出来了,但怎么才能把任务栏的去掉呢?
4楼的用的是什么控件啊,能告诉我吗?可给个控件我。谢谢!
我的Email:huangjiachneg@163.com我不懂,我请教!
----------------------------------------------
-
作者:
男 gxwzhjc (小黄) ★☆☆☆☆ -
盒子活跃会员
2003/4/26 11:03:10
6楼: 1楼的高手,我还有一个问题没有解决就是当我按最小化时,窗体会先最小化时到任务栏后才有最小化到托盘的效果。这怎么解决啊。我不懂,我请教!
----------------------------------------------
-
作者:
女 123 (猪猪) ★☆☆☆☆ -
盒子活跃会员
2003/4/26 11:31:59
7楼: to 6楼,因为你是最小化的时候动画不是关闭的时候动画,所以只能这样了.
----------------------------------------------
-
作者:
男 gxwzhjc (小黄) ★☆☆☆☆ -
盒子活跃会员
2003/4/26 12:23:04
8楼: 谢谢,终于大功告成!我不懂,我请教!
----------------------------------------------
-
作者:
男 chenting (宾龙) ★☆☆☆☆ -
普通会员
2005/3/28 10:02:01
9楼: 能否告诉我ZoomAction是什么,我在控件里没有找到.
----------------------------------------------
-
作者:
男 qegdgh49410436 (ddd) ★☆☆☆☆ -
禁用账号
2007/2/9 19:01:44
10楼: ……
被禁用帐号,帖子内容自动屏蔽!
……

----------------------------------------------
发布广告,账号被禁用!
作者:
男 boy (阿門) ★☆☆☆☆ -
盒子活跃会员
2007/2/9 21:29:28
11楼: type
  TZoomAction = (zaMinimize, zaMaximize);   <<<<<<--- ZoomAction
  TfrmTest = class(TForm)
  procedure FormClose(Sender: TObject; var Action: TCloseAction);
  procedure FormShow(Sender: TObject);
  private
  { Private declarations }
  public
  { Public declarations }
  end;
----------------------------------------------
Delphi開發◆伺服器架設◆免安裝APACHE,PHP,CGI Perl, MYSQL ★
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行89.84375毫秒 RSS