c++ - 为什么 Shell_NotifyIcon 不显示气球通知?
问题描述
我编写了一个示例应用程序来查看如何将气球通知添加到 Win32 应用程序。有人可以指出为什么Shell_NotifyIcon()
不显示气球通知吗?
GetLastError
返回. 2147500037
_Shell_NotifyIcon()
#include <Windows.h>
#include "shellapi.h"
int main()
{
NOTIFYICONDATA nid;
nid.cbSize = sizeof(NOTIFYICONDATAA_V3_SIZE);
nid.uTimeout = 500;
nid.uID = 1;
nid.uFlags = NIF_TIP | NIF_ICON | NIF_MESSAGE | NIF_INFO | 0x00000080;
nid.uCallbackMessage = WM_USER + 200;
nid.hIcon = LoadIcon(NULL, IDI_INFORMATION);
lstrcpy(nid.szTip, L"Test Tip");
lstrcpyW(nid.szInfoTitle, L"Test Title");
Shell_NotifyIcon(NIM_ADD, &nid); //GetLastError returns - 2147500037
return 0;
}
解决方案
应该使用NOTIFYICONDATA_V3_SIZE
而不是NOTIFYICONDATAA_V3_SIZE
,因为您清楚地使用 Unicode(从lstrcpyW
和看到L"..."
),并且您使用默认值NOTIFYICONDATA
应该只使用nid.cbSize = NOTIFYICONDATA_V3_SIZE;
or nid.cbSize = sizeof(NOTIFYICONDATA)
,你不希望有整数常量的大小。
Shell_NotifyIcon
调用前还应检查结果GetLastErrror
,如果不是FALSE
,GetLastError
则不相关。
推荐阅读
- javascript - for (var key in object) - 返回未定义 - javascript
- python - 从字符串/元组转换 UTC 日期时间
- php - 使用 PHP 从文件中填充 MySQL 数据库
- react-native - SyntaxError: Unexpected token import React Native
- java - 使用 Visual Studio Code Portable 下载 Java 扩展时出现问题
- python - 如何访问二维列表中的元组
- performance - 在 Haskell 中,使用函数执行开始和结束时获得的时间戳来衡量性能是否正确?
- python - 如何计时冒泡排序
- symfony - 如何在 Symfony 的 services.yaml 中使用 PHP-DI 中定义的服务?
- swift - 在 Swift 中仅使用 NSTableView 在一列上使用类型选择