繁体   English   中英

C ++ Shellapi-系统托盘气泡时的垃圾字符

[英]C++ shellapi - Garbage characters upon system tray bubbles

所以我正在用Win32和Shellapi在C ++中制作一个控制台应用程序(出于不同的原因)。 尽管最近我在调用Shell_NotifyIcon()函数时注意到了一些问题,但大多数情况都进展顺利。

我得到了这段代码:

NOTIFYICONDATA s_data;
s_data.cbSize = sizeof(s_data);
s_data.uFlags = NIF_INFO;
s_data.dwInfoFlags = NIIF_NONE;
s_data.uTimeout = 1;
StringCchCopy(s_data.szInfo, ARRAYSIZE(s_data.szInfo), L"Test message");
Shell_NotifyIcon(NIM_ADD, &s_data);

我包含了以下(相关)头文件:

#include <Windows.h>
#include <Shellapi.h>
#include <Strsafe.h>

而且我得到以下结果: http : //prntscr.com/2s5e3i

我想它与NOTIFYICONDATA::szInfo成员有关,但是我仍然无法解决该问题。 考虑到我已经在线上仔细检查了一些示例(尽管差异很小),所以我怀疑它是否真的很明显。

提前致谢。 我使用shell的工作还不多,所以如果我误解了一些主要知识(或使用不正确的东西),请原谅。 我希望我至少可以在此取得进展。

参考文献:

奇怪地问了一段时间后,我自己解决了这个问题。

答案很简单:您需要将NOTIFYICONDATA::szInfoTitle设置为某种值。 就我而言,我完全忘记了它,并期望它使用某种默认标题,但事实并非如此。 取而代之的是,它被垃圾取代,使其变得不可读。

为了解决这个问题,我添加了:

StringCchCopy(s_data.szInfoTitle, ARRAYSIZE(s_data.szInfoTitle), L"Test title");

现在,一切看起来都很好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM