托盘气球提示出不来。。

饿半肚 2012-09-24 07:46:11
看了http://www.vckbase.com/index.php/wv/313这里的例子,把源码也下下来了,改了几处代码之后,用VC2008编译成功了,但运行后,点了“显示气球提示”的菜单,气球没出来。。

在CTrayIcon::ShowBalloonTip()里,加了些代码观察返回值——


BOOL CTrayIcon::ShowBalloonTip(LPCTSTR szMsg, LPCTSTR szTitle,
UINT uTimeout, DWORD dwInfoFlags)
{
m_nid.cbSize=sizeof(NOTIFYICONDATA);
m_nid.uFlags = NIF_INFO;
m_nid.uTimeout = uTimeout;
m_nid.dwInfoFlags = dwInfoFlags;
strcpy(m_nid.szInfo,szMsg ? szMsg : _T(""));
strcpy(m_nid.szInfoTitle,szTitle ? szTitle : _T(""));

BOOL bRet = Shell_NotifyIcon(NIM_MODIFY, &m_nid);
int i = GetLastError();

return bRet;
}


bRet == 1; i == 0

但是气球就是出不来。。请大家指教下,谢谢!
...全文
242 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
饿半肚 2012-09-25
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]
VS2008 需要在targetver.h中做如下修改:

C/C++ code

#pragma once

// 包括 SDKDDKVer.h 将定义最高版本的可用 Windows 平台。

// 如果要为以前的 Windows 平台生成应用程序,请包括 WinSDKVer.h,并将
// WIN32_WINNT 宏设置为要支持的平台,然后再包括 SDKDDKVer.h。
……
[/Quote]

好用好用!果然这样就冒出来了。(不过改了版本之后竟然连MAXINT都变成没定义了= =)

谢谢大家啦!
酒红色的泪 2012-09-25
  • 打赏
  • 举报
回复
VS2008 需要在targetver.h中做如下修改:
#pragma once

// 包括 SDKDDKVer.h 将定义最高版本的可用 Windows 平台。

// 如果要为以前的 Windows 平台生成应用程序,请包括 WinSDKVer.h,并将
// WIN32_WINNT 宏设置为要支持的平台,然后再包括 SDKDDKVer.h。
#ifndef WINVER // 指定要求的最低平台是 Windows Vista。
#define WINVER 0x0501 // 将此值更改为相应的值,以适用于 Windows 的其他版本。
#endif

#ifndef _WIN32_WINNT // 指定要求的最低平台是 Windows Vista。
#define _WIN32_WINNT 0x0501 // 将此值更改为相应的值,以适用于 Windows 的其他版本。
#endif
#include <SDKDDKVer.h>
傻X 2012-09-25
  • 打赏
  • 举报
回复
这个我前两天用cppTooltips刚完成,那个气泡背景还渐变的呢。
单位不能上图。悲剧啊
gfm688 2012-09-25
  • 打赏
  • 举报
回复
要保证 m_nid.hWnd 和 m_nid.uID 有效哦
gfm688 2012-09-25
  • 打赏
  • 举报
回复

BOOL CTrayIcon::ShowBalloonTip(HWND hwnd, LPCTSTR szMsg, LPCTSTR szTitle,
UINT uTimeout, DWORD dwInfoFlags)
{
m_nid.cbSize=sizeof(NOTIFYICONDATA);
m_nid.hWnd = hwnd;
m_nid.uFlags = NIF_INFO;
m_nid.uTimeout = uTimeout;
m_nid.dwInfoFlags = dwInfoFlags;
strcpy(m_nid.szInfo,szMsg ? szMsg : _T(""));
strcpy(m_nid.szInfoTitle,szTitle ? szTitle : _T(""));

BOOL bRet = Shell_NotifyIcon(NIM_MODIFY, &m_nid);

return bRet;
}
Gloveing 2012-09-24
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

是想在托盘那里冒出一个气球提示哦,不是做托盘图标。
[/Quote]
在托盘处,在 uCallbackMessage 的处理中,冒出一个气球提示
饿半肚 2012-09-24
  • 打赏
  • 举报
回复
是想在托盘那里冒出一个气球提示哦,不是做托盘图标。
傻X 2012-09-24
  • 打赏
  • 举报
回复
BOOL bRet = Shell_NotifyIcon(NIM_MODIFY, &m_nid);

是NIM_ADD吧

15,980

社区成员

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

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