【发布时间】:2014-02-23 14:56:02
【问题描述】:
所以我有一个没有控制台的程序。它首先创建一个虚拟 HWND,然后将其隐藏,然后充当通知区域应用程序(留在托盘中)。人们可以将鼠标悬停在程序上以查看其状态并按热键在屏幕上执行任务。
无论如何,我想在托盘中显示我的程序图标但不能。我将图标资源添加到 Visual Studio,我的可执行文件在资源管理器中有一个图标。资源的大小为 16x16 - 256x256。
现在,我将 NOTIFYICONDATA 的信息设置为: nid.hIcon = LoadIcon(NULL, MAKEINTRESOURCE(IDI_ICON1));
并包含“resource.h”
将 IDI_ICON1 定义为 104。但是,当我使用它时,会出现蓝色的解释点图标(即 Windows 默认图标之一)。我尝试了 IDI_ERROR 并且错误图标显示正常。我尝试了一个自定义的 12x12 图标,因为我阅读尺寸可能是问题,但这也不起作用。
IDI_APPLICATION 使用应用程序的默认图标,即默认的.exe 图标。
我目前不知道该尝试或做什么。
提前感谢您的帮助!
【问题讨论】:
-
从不在使用原始 winapi 时跳过错误检查。至少使用 assert() 来验证您的假设。您现在会看到 LoadIcon() 失败。
-
是的,你是对的。我不熟悉这个任务栏相关的 API,所以我做了一些检查。
标签: c++ icons system-tray notifyicon tray