在Systray上放个图标,让其tooltip显示成Balloon Tooltips。有兴趣的不如试一试,可以参考如下文档:MSDN中的Platform SDK Documentation

happyjoe 2002-04-11 06:45:41
我在做这样的东西:
在Systray上放个图标,让其tooltip显示成Balloon Tooltips,不过没有成功。
:-(
有兴趣的不如试一试,可以参考如下文档:
MSDN中的Platform SDK Documentation --> User Interface Services --> Windows Common Controls --> Tooltip Controls --> Using Tooltip Controls.
做出来后别忘了告诉我哦。
我做了一天没有做出来。
...全文
103 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
tvrcjtg 2002-05-27
  • 打赏
  • 举报
回复
我的MSDN是很好的:(
happyjoe 2002-04-11
  • 打赏
  • 举报
回复
这样做出来的trayicon的提示(就是tooltip)是标准的,我现在是想提示为
Balloon Tooltips
看看
MSDN中的Platform SDK Documentation --> User Interface Services --> Windows Common Controls --> Tooltip Controls --> Using Tooltip Controls.
就知道了,里面有图片。
blazingfire 2002-04-11
  • 打赏
  • 举报
回复
还有一些事件没有处理,所以不要在运行时将窗体最小化,否则恢复不了。
blazingfire 2002-04-11
  • 打赏
  • 举报
回复
unit main;

interface
uses
Windows, Messages, SysUtils, Classes,Graphics, Controls, Forms,
Dialogs,ShellAPI, StdCtrls;
{自定义消息,当小图标捕捉到鼠标事件时Windows向回调函数发送此消息}
const MY_MESSAGE = WM_USER+0;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
public
{ Public declarations }
end;

var
Form1: TForm1;
implementation

{$R *.DFM}
{当主Form建立时通知Windows加入小图标}
procedure TForm1.FormCreate(Sender: TObject);
var
nid: TNotifyIconData;
begin
nid.cbSize := sizeof(nid); // nid变量的字节数
nid.Wnd := Handle; // 主窗口句柄
nid.uID := 1; // 内部标识,可设为任意数
nid.hIcon := Application.Icon.Handle; // 要加入的图标句柄,可任意指?
nid.szTip := '这是我的第一个托盘程序,不好别怪我哟!'; // 提示字符串
nid.uCallbackMessage := MY_MESSAGE; // 回调函数消息
nid.uFlags := NIF_ICON or NIF_TIP or NIF_MESSAGE; // 指明哪些字段有?
Shell_NotifyIcon(NIM_ADD,@nid);
{将程序的窗口样式设为TOOL窗口,可避免在任务条上出现}
SetWindowLong(Application.Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);
end;

{程序被关闭时通知Windows去掉小图标}
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var
nid: TNotifyIconData;
begin
nid.cbSize := sizeof(nid); // nid变量的字节数
nid.cbSize := sizeof(nid); // nid变量的字节数
nid.uID := 1; //内部标识,与加入小图标时的数一致
nid.Wnd := Handle; //主窗口句柄
Shell_NotifyIcon(NIM_DELETE, @nid); //去掉小图标
end;

end
blazingfire 2002-04-11
  • 打赏
  • 举报
回复
你说什么我都不知道,如果是作托盘我倒是会。用
Shell_NotifyIcon(dwMessage:DWORD;LpData:TNotifyIconData);
SysTray控件用法详解 VB SYSTRAY 托盘图标 用VB6自带的systray.ocx控件实现托盘图标程序 : 补充: 然后在自己的VB程序添加改控件(工程-部件-浏览)。   最好把这个ocx放到C:\WINDOWS\system32。   改控件的属性InTray属性用来设置是否显示在托盘,True为显示在托盘,False为不显示TrayIcon属性是在托盘显示图标式样。TrayTip属性是鼠标移到改控件上面显示的提示文字。如果要使程序最小化时显示到托盘,如下:   Private Sub Form_Resize()    If Me.WindowState = vbMinimized Then    cSysTray1.InTray = True    Me.Visible = False End If   End Sub   点击托盘图标后让程序显示出来,如下:   Private Sub cSysTray1_MouseDown(Button As Integer, Id As Long)    Me.WindowState = vbNormal    Me.Visible = True    cSysTray1.InTray = False    Me.SetFocus   End Sub '单击关闭不退出程序 Private Sub Form_Unload(Cancel As Integer) 主程序.Hide Cancel = False End Sub '单击关闭不退出程序 Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) Cancel = 1 主程序.Hide End Sub ’tui为窗体菜单-退出选项名称 Private Sub tui_Click()’快捷键设ALT+F1 End End Sub '注:"主程序"代表一个窗体(Form),窗体菜单-退出选项需设置快捷键ALT+F1 '这个控件有一个小小的问题,如果托盘菜单有退出选项,不能直接用"End 语句",否则在编译后运行期间用户选择退出后,操作系统会报错,以上使用发送按键方法避免出错 ,当然还有其他避免出错方法。

1,184

社区成员

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

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