c++ - 如何获取图标气球提示而不是通知幻灯片
问题描述
我正在创建一个程序,该程序将成为系统托盘通知区域中的图标,但无法显示气球提示。
通知图标气球消息,如 NIN_BALLOONSHOW,可以正常接收,但我得到了一个从屏幕右边缘滑出的工具提示,而不是我需要的旧气球。Win10-1809 可能会拦截消息并改变它们的行为。如您所知,我使用的是 c++。
我怎样才能改变这个并让旧气球回来?
编辑:我在注册表中找到了一种方法,但我需要一种使用代码的方法。
更多数据:
以下是我正在做的一些事情:
// initial tooltip code
NOTIFYICONDATA nid;
nid.cbSize = sizeof(nid);
nid.hWnd = hwnd;
nid.uID = 1;
nid.uFlags = NIF_ICON | NIF_TIP | NIF_MESSAGE | NIF_SHOWTIP;
nid.uVersion = NOTIFYICON_VERSION_4;
nid.uCallbackMessage = WMAPP_NOTIFYCALLBACK;
LoadIconMetric(g_hInst, MAKEINTRESOURCE(IDI_MYICON
LIM_SMALL, &nid.hIcon);
LoadString(g_hInst, IDS_MYTOOLTIP, nid.szTip, ARRAYSIZE(nid.szTip));
Shell_NotifyIcon(NIM_ADD, &nid);
Shell_NotifyIcon(NIM_SETVERSION, &nid);
然后在我想要气球时在代码中:
// balloon code
nid.uFlags = NIF_INFO;
nid.dwInfoFlags = NIIF_WARNING;
LoadString(g_hInst, IDS_BALLOON_TITLE, nid.szInfoTitle,
ARRAYSIZE(nid.szInfoTitle));
LoadString(g_hInst, IDS_BALLOON_TEXT, nid.szInfo, ARRAYSIZE(nid.szInfo));
LoadIconMetric(g_hInst, MAKEINTRESOURCE(IDI_BALLOON), LIM_LARGE,
&nid.hBalloonIcon);
Shell_NotifyIcon(NIM_MODIFY, &nd);
解决方案
推荐阅读
- r - Getting this error: Error: Cannot add ggproto objects together. Did you forget to add this object to a ggplot object? when trying to limit display
- javascript - babel transpile `let` into `var`, how runtime know it should depend on block scope
- javascript - Logging in with Discord OAuth2 using Nuxt's auth-module
- spring - Spring boot http request always handled by the same method
- r-markdown - 如何在 R Markdown 中编写没有空格的等式?
- javascript - Why cant i pass props to another page? Cannot read proprty of undefined comes up
- java - 是否可以在项目中打包便携式 maven(以及如何打包的一些一般方向)?
- spring-webflux - 使用 TcpClient 连接池(Reactor Netty)获取和释放连接
- azure-ad-b2c - 从注册和登录 v2 政策中获取电子邮件地址?
- css - 如何让 liveserver 渲染 django 模板?