से अधिक मैं चाहता हूँ अपने आवेदन विंडोज 7 में सूचना क्षेत्र में एक आइकन के लिए मैं Shell_NotifyIcon इस्तेमाल किया आइकन जोड़ने के लिए। आइकन प्रकट होता है, लेकिन जब मैं आइकन पर माउस पॉइंटर लाता हूं, तो आइकन गायब हो जाता है। आवेदन पूरे समय चल रहा है। आइकन छुपा नहीं है, यह अभी गायब हो जाता है।चिह्न अधिसूचना ट्रे माउस पर गायब हो जाता है करने के लिए जोड़ा
Shell_NotifyIcon एक गैर शून्य मान है, जो यह सफल होता है इसका मतलब है देता है।
static const int ID_TRAYICON = 300;
static const int MSG_TRAYICON = WM_USER + 1;
NOTIFYICONDATA nid;
void InitTrayIconData()
{
memset(&nid, 0, sizeof(NOTIFYICONDATA));
nid.cbSize = sizeof(NOTIFYICONDATA);
nid.hWnd = hwnd;
nid.uID = ID_TRAYICON;
nid.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;
nid.uCallbackMessage = MSG_TRAYICON;
nid.hIcon = LoadIcon(nullptr, IDI_APPLICATION);
//nid.uVersion = NOTIFYICON_VERSION_4;
lstrcpy(nid.szTip, TEXT("Data Aggregator in-dev version"));
}
WM_CREATE संदेश को संसाधित करते समय तब:
InitTrayIconData();
Shell_NotifyIcon(NIM_ADD, &nid);
और WM_DESTROY संसाधित करते समय:
Shell_NotifyIcon(NIM_DELETE, &nid);
मैं भी कुछ के लिए देखा है कि
यहाँ प्रासंगिक कोड है कारण MSG_TRAYICON संदेश कभी नहीं कहा जाता है।
मुझे एक ही समस्या थी, सही दिशा में मुझे इंगित करने के लिए धन्यवाद। – quantum