当前位置:  开发笔记 > 开发工具 > 正文

使用Shell_NotifyIcon的气球工具提示适用于Vista,但不适用于XP

如何解决《使用Shell_NotifyIcon的气球工具提示适用于Vista,但不适用于XP》经验,为你挑选了1个好方法。

我有一些代码弹出气球提示.它适用于Vista但不适用于Windows XP.到目前为止这是代码.它适用于Vista但不适用于XP.我不明白为什么.此版本不会加载图标,因此它将显示为空白.

memset(&m_notifyData, 0, sizeof(NOTIFYICONDATA));
m_notifyData.cbSize = sizeof(NOTIFYICONDATA);
m_notifyData.uFlags = NIF_INFO | NIF_MESSAGE;
m_notifyData.hWnd = (HWND) m_preference_window->GetHWND();
m_notifyData.uID = 99;
m_notifyData.uTimeout = timeout;
m_notifyData.dwInfoFlags = NIIF_NOSOUND | NIIF_INFO;

wxStrncpy(m_notifyData.szInfo, message.c_str(), WXSIZEOF(m_notifyData.szInfo));
wxStrncpy(m_notifyData.szInfoTitle, title.c_str(),WXSIZEOF(m_notifyData.szInfoTitle));

Shell_NotifyIcon(NIM_ADD, &m_notifyData);

wxLogMessage("Balloon timeout is %i", timeout);
m_timer_balloon->Start(timeout, true);

当时间运行时,执行:

Shell_NotifyIcon(NIM_DELETE, &m_notifyData);

任何想法为什么XP不显示消息?



1> Michael..:
m_notifyData.cbSize = sizeof(NOTIFYICONDATA);

应该

m_notifyData.cbSize = NOTIFYICONDATA_V2_SIZE

Vista在XP提供的基础上添加了几个成员.Size用于指示要传递的结构的版本.XP拒绝它,因为它的大小无法识别.

推荐阅读
php
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有