У меня есть этот код (Со страницы Microsoft Вот) это установило значок в панели задач, но я не могу показать никакой значок в нем.
//Notification
nid.cbSize = sizeof(nid);
nid.uFlags = NIF_ICON | NIF_TIP | NIF_GUID;
// Note: This is an example GUID only and should not be used.
// Normally, you should use a GUID-generating tool to provide the value to
// assign to guidItem.
static const GUID myGUID =
{ 0x23977b55, 0x10e0, 0x4041,{ 0xb8, 0x62, 0xb1, 0x95, 0x41, 0x96, 0x36, 0x68 } };
nid.guidItem = myGUID;
nid.hIcon = LoadIconA(wc.hInstance, IDC_ARROW);
// This text will be shown as the icon's tooltip.
StringCchCopy(nid.szTip, ARRAYSIZE(nid.szTip), title);
//TaskBar
nid.hWnd = hwnd;
// Show the notification.
Shell_NotifyIcon(NIM_ADD, &nid) ? S_OK : E_FAIL;
Может ли кто-нибудь помочь мне, пожалуйста? Я только получаю место на панели задач, но «прозрачно».
Ваш код для загрузки иконки не работает. Вы не проверяли на ошибки. Если бы вы сделали так, вы бы увидели, что LoadIcon вернул NULL.
IDC_ARROW определяет курсор, а не значок, поэтому вы должны использовать IDC_ARROW с LoadCursor. Далее, как объяснено в документации, вам нужно будет передать NULL для дескриптора модуля, поскольку он является системным курсором. Но вам нужно загрузить значок в любом случае.
Итак, исправьте свою проблему, загрузив значок. Убедитесь, что LoadIcon возвращает значение, которое не равно NULL. Обычно это можно сделать, связав ресурс значка с исполняемым файлом и загрузив его. В целях тестирования вы можете использовать один из предопределенных значков, как описано в документации для LoadIcon.
И, пожалуйста, никогда не пренебрегайте проверкой ошибок.
Других решений пока нет …