Ĺadny brzuch
Prosta ikona tray z menu kontekstowym pod prawym przyciskiem myszy.Problem w tym ,że menu nie chce zniknąć kiedy klikam w inną część ekranu(np pulpit) ??
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch (msg) { case WM_CLOSE: DestroyWindow(hwnd); break; case CMSG_TRAY1: { if (lParam == WM_RBUTTONUP) { HMENU popupMenu = CreatePopupMenu(); AppendMenu(popupMenu, MF_STRING, 0, "Wyjście"); POINT ptCursor; GetCursorPos(&ptCursor); // TrackPopupMenu(popupMenu, TPM_RIGHTBUTTON, ptCursor.x, ptCursor.y,0, hwnd,NULL); TrackPopupMenuEx(popupMenu, TPM_RIGHTBUTTON, ptCursor.x, ptCursor.y, hwnd,0); case WM_COMMAND: { if (wParam==0) { NOTIFYICONDATA nid; nid.cbSize = sizeof(NOTIFYICONDATA); nid.hWnd = hwnd; nid.uID = ID_TRAY1; nid.uFlags = 0; Shell_NotifyIcon(NIM_DELETE, &nid); PostQuitMessage(0); } } } break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hwnd, msg, wParam, lParam); } return 0; } }
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch (msg) { case WM_CLOSE: DestroyWindow(hwnd); break; case CMSG_TRAY1: { if (lParam == WM_RBUTTONUP) { HMENU popupMenu = CreatePopupMenu(); AppendMenu(popupMenu, MF_STRING, 0, "Wyjście"); POINT ptCursor; GetCursorPos(&ptCursor); // TrackPopupMenu(popupMenu, TPM_RIGHTBUTTON, ptCursor.x, ptCursor.y,0, hwnd,NULL); TrackPopupMenuEx(popupMenu, TPM_RIGHTBUTTON, ptCursor.x, ptCursor.y, hwnd,0); case WM_COMMAND: { if (wParam==0) { NOTIFYICONDATA nid; nid.cbSize = sizeof(NOTIFYICONDATA); nid.hWnd = hwnd; nid.uID = ID_TRAY1; nid.uFlags = 0; Shell_NotifyIcon(NIM_DELETE, &nid); PostQuitMessage(0); } } } break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hwnd, msg, wParam, lParam); } return 0; } }