请教一下:如何在系统图标区(托盘区)显示文字,就如时间显示一样?正准备做个东东。

nonlyli 2003-01-02 08:44:56
只知道用api shell_notify来加减图标,从没找到过在托盘区显示文字的API,能像时间显示那样就好了。

昨天问错地方了(在基础区),今天总该有答案了吧!
...全文
572 36 打赏 收藏 转发到动态 举报
写回复
用AI写文章
36 条回复
切换为时间正序
请发表友善的回复…
发表回复
nonlyli 2003-01-20
  • 打赏
  • 举报
回复
没办法,就讨论到此吧,还是没有最好的解决方案……
继续找!
snail1024 2003-01-18
  • 打赏
  • 举报
回复
我想他是想实现动态图标而不是提示文字吧!!!
angelcorps 2003-01-18
  • 打赏
  • 举报
回复
自己做个系统BAR,上面想放什么放什么,想怎么放怎么放
(别打我)
UP
nonlyli 2003-01-17
  • 打赏
  • 举报
回复
ttui的方法很好啊,至少达成目的了。我DOWN的一个时钟类软件“时光精灵”就是用的这个方法,不过……

还有好些的没有……(够贪?)
nonlyli 2003-01-15
  • 打赏
  • 举报
回复
先谢过starcbh/ttui,我试试再来结帖。
DJ_KK 2003-01-15
  • 打赏
  • 举报
回复
up
ttui 2003-01-15
  • 打赏
  • 举报
回复
liuwl() :
且~人家又没说是不是要做自己的时钟程序,我的方法怎么啦!
Eastunfail 2003-01-14
  • 打赏
  • 举报
回复
帮你顶一下啊~
liuwl 2003-01-14
  • 打赏
  • 举报
回复
笨windows优化大师里面不是可以设置在任务的时间的前面显示其它字符吗?
修改了注册表而己。
ttui 2003-01-13
  • 打赏
  • 举报
回复
我想这个能符合你的要求把!不过可显示的字数有限制,没办法就那么大地方。

unit Unit2;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Panel1: TPanel;
Timer1: TTimer;
procedure Button1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
t:SYSTEMTIME;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
th:hwnd;
r:trect;
dc:hdc;
begin
th:=FindWindowEx(FindWindowEx(FindWindow('Shell_TrayWnd',nil),0,'TrayNotifyWnd',nil),0,'TrayClockWClass',nil);
getwindowrect(th,r);
windows.setparent(panel1.Handle,th);
MoveWindow(panel1.Handle,0,0,r.Right-r.Left,r.Bottom-r.Top,true);
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
getlocaltime(t);
panel1.Caption:='My '+inttostr(t.wHour)+':'+inttostr(t.wMinute);
// panel1.Hint:=inttostr(t.wYear)+'年'+inttostr(t.wMonth)+'月'+inttostr(t.wDay)+'日';
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
getlocaltime(t);
panel1.Caption:=inttostr(t.wHour)+':'+inttostr(t.wMinute);
// panel1.Hint:=inttostr(t.wYear)+'年'+inttostr(t.wMonth)+'月'+inttostr(t.wDay)+'日';
end;

end.
nonlyli 2003-01-08
  • 打赏
  • 举报
回复
再up.
starcbh 2003-01-08
  • 打赏
  • 举报
回复
http://www.codelphi.com/hanyi/down/01704/trayicon3.zip

http://www.codelphi.com/hanyi/jm.html

TrayIcon
源码:有
大小:616KB 下载

作者:Troels Jakobsen. CoolTrayIcon的又一新版本,支持D6了,新增加了些属性和方法,如BitMapToIcon方法可以将位图转换为Icon使用。此外,还添加了一个新控件TextTrayIcon,它直接将文字作为Tray Icon,可以设置字体、颜色等,和Timer结合起来你就可以实现动态文字的TrayIcon了,这还是满酷的嘛:-)。


nonlyli 2003-01-07
  • 打赏
  • 举报
回复
up.再等待……
maozhuxiwansui 2003-01-07
  • 打赏
  • 举报
回复
试着用图片做呢,即把你想显示的文字做成图片

(这是一种超笨的方法)
kofxdm 2003-01-07
  • 打赏
  • 举报
回复
托盘里时间条不属于托盘图标,估计是SHELL的外壳自带的,所以要实现
长条文字显示有一定难度,估计不用托盘函数。
nonlyli 2003-01-06
  • 打赏
  • 举报
回复
MSDN里面好像没有,我试了试,英文不够好。大家帮忙找找?
nonlyli 2003-01-06
  • 打赏
  • 举报
回复
up.更想知道了。当然不只是做个‘XX工作室’了,还要响应click,dblclick。像图标那样。
nonlyli 2003-01-03
  • 打赏
  • 举报
回复
顶。
等待中……
h_x_k 2003-01-03
  • 打赏
  • 举报
回复
写个控件把系统注册表改了就行了

好象是在...international里面,我忘了

把格式改为英语标准,好久没做了,忘完了
深宇 2003-01-03
  • 打赏
  • 举报
回复
to fairychild:
不用SPY也可以看得出时间是和托盘区的其它图示不一样的,只要把焦点移到托盘区就知道了,时间那里是得不到焦点的,其它的图标就可以。
加载更多回复(16)

1,184

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧