怎么用API在托盘处主动弹出气泡提示?

iatsbg 2007-07-07 03:50:58
Shell_NotifyIcon里可以设置ToolTip,但要鼠标移上去才会显示,不适用。要能主动弹出的,就是“发现新硬件”或者“磁盘空间低”那种,怎么做?
...全文
1406 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
huangdi7922 2010-08-06
  • 打赏
  • 举报
回复
气泡不自动消失怎么办?
ArthurJiang 2009-02-25
  • 打赏
  • 举报
回复
10楼的方法行不通
lj592752 2008-08-08
  • 打赏
  • 举报
回复
10楼的这个方法好像行不通啊,每次调用Shell_NotifyIcon()的时候返回值都是False啊!
洋溢2016 2007-07-10
  • 打赏
  • 举报
回复
luguo
rainv 2007-07-09
  • 打赏
  • 举报
回复
mark
charleswu82 2007-07-09
  • 打赏
  • 举报
回复
mark
bios8086 2007-07-09
  • 打赏
  • 举报
回复
怎么在弹出的气泡上增加链接呢?URL之类的
enterprise54 2007-07-09
  • 打赏
  • 举报
回复
mark
iatsbg 2007-07-08
  • 打赏
  • 举报
回复
明白了,谢谢。
rotApple 2007-07-08
  • 打赏
  • 举报
回复
不好意思,上面NotifyIconData写成了NotifyData
rotApple 2007-07-08
  • 打赏
  • 举报
回复
主动弹? 主动弹你写个方法自己调一下不就行了??

void YOUCLASS::ShowBallon(LPCTSTR title,LPCTSTR text,UINT type,UINT timeout)
{
if(timeout < 0)return;
NotifyData data;
data.cbSize = sizeof(data);
data.hWnd = m_hWnd;
data.uID = 0;
data.uTimeoutOrVersion = timeout;
data.szInfoTitle = title;
data.szInfo = text;
data.dwInfoFlags = (DWORD)type; //Error=0x03, Info=0x01, None=0x00, Warning=0x02

Shell_NotifyIcon(0x01, &data); //Add=0x00, Delete=0x02, Modify=0x01
}

弹出: ShowBallon("title","teste a a oh!",0x1,5);
iatsbg 2007-07-07
  • 打赏
  • 举报
回复
查过,似乎没有说怎样主动弹出气泡。
rotApple 2007-07-07
  • 打赏
  • 举报
回复
也是和上面差不多就是处理用户消息了.
rotApple 2007-07-07
  • 打赏
  • 举报
回复
弹气泡要用的:

结构: NotifyIconData
API: Shell_NotifyIcon

自己查吧.
rotApple 2007-07-07
  • 打赏
  • 举报
回复
上面的:
(HWND hwnd, UINT uID, HICON hicon, LPSTR lpszTip)
全部是参数.
iatsbg 2007-07-07
  • 打赏
  • 举报
回复
不是要处理按键消息,而是要弹出气泡!
rotApple 2007-07-07
  • 打赏
  • 举报
回复
不好意思,要先向任务栏增加:
下面的:MYWM_NOTIFYICON是自定义消息,为: #define MYWM_NOTIFYICON WM_USER+1

NOTIFYICONDATA d;
d.cbSize=sizeof(NOTIFYICONDATA);
d.hWnd=hwnd;
d.uID=uID;
d.uFlags=NIF_ICON | NIF_TIP | NIF_MESSAGE;
d.uCallbackMessage=MYWM_NOTIFYICON;
d.hIcon=hicon;

if(lpszTip)
lstrcpy(d.szTip,lpszTip);
else
d.szTip[0]='\0';
return Shell_NotifyIcon(NIM_ADD,&d);
rotApple 2007-07-07
  • 打赏
  • 举报
回复
ON_MESSAGE(MYWM_NOTIFYICON,OnMyIconNotify)



void CPageDlg::OnMyIconNotify(WPARAM wParam,LPARAM lParam)
{
UINT uMouseMsg=LOWORD(lParam);
switch(uMouseMsg)
{
case WM_LBUTTONDOWN:
//处理左键
break;

case WM_RBUTTONDOWN:
//处理右键(出菜单)
break;
}
}
iatsbg 2007-07-07
  • 打赏
  • 举报
回复
找不到NIN_POPUPOPEN的定义啊。
yxz_lp 2007-07-07
  • 打赏
  • 举报
回复
发送NIN_POPUPOPEN消息

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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