Windows Shell

Utwórz aplikację wyświetlającą umieszczającą ikonę w pasku zadań. W momencie startu aplikacji okno główne jest niewidoczne a w pasku zadań (system tray) pojawia się ikona i ewentualnie komunikat w postaci tzw. dymka. Kliknięcie LBM powoduje pokazanie okna głównego aplikacji. Minimalizacja lub próba zamknięcia okna powodują ukrycie okna. Kliknięcie RBM w ikonkę na pasku zadań wyświetla menu kontekstowe umożliwiające przywrócić widoczność okna głównego lub zamknąć aplikację.

  • utwórz własną ikonę o dodaj ją do zasobów aplikacji,
  • przygotuj strukturę NOTIFYICONDATA. Podaj tu wcześniej wczytaną ikonę. Dodaj tekst wyświetlany po najechaniu kursorem na ikonę (tip).
  • umieść ikonę w pasku zadań za pomocą funkcji Shell_NotifyIcon. Ikona powinna być automatycznie usuwana w momencie zamknięcia aplikacji.
  • dodaj własny komunikat (np. WM_USER_SHELLICON) obsługiwany podczas kliknięcia ikony. Obsłuż komunikaty związane z kliknięciem lewego i prawego klawisza myszy na ikonie zgodnie z treścią zadania.
  • Kliknięcie LBM powoduje pokazanie się okna głownego (które domyślnie jest ukryte). Minimalizacja lub próba zamknięcia okna głównego powoduje ponowne jego ukrycie. Obsłuż w tym celu komunikat okna WM_SYSCOMMAND,
  • Kliknięcie RBM otwiera menu kontekstowe pozwalające zamknąć aplikację. Do tworzenia menu można wykorzystać funkcje CreatePopupMenu oraz AppendMenu. Wyświetlenie menu kontekstowego odbywa się za pomocą funkcji TrackPopupMenu. Pozycję kursora uzyskujemy z GetCursorPos. Niezbędne jest też ustawienie okna na pierwszym planie SetForegroundWindow.
  • Dodaj wyświetlanie komunikatu balonowego w momencie startu aplikacji.

Do menu kontekstowego z poprzedniego zadania dodaj podmenu zawierające zestaw narzędzi i skrótów do aplikacji. Przykładowe akcje udostępniane przez menu:

  • wyświetlenie okna z informacjami o systemie operacyjnym (About),
  • uruchomienie przeglądarki internetowej, np. Forefox,
  • otworzenie katalogu użytkownika w Eksploratorze,
  • uruchomienie wyszukiwania plików w katalogu domowym użytkownika,

Wykorzystaj funkcję ShellExecute do otwierania aplikacji i plików oraz ShellAbout do wyświetlenia informacji o systemie. Folder użytkownika uzyskaj korzystając z funkcji SHGetKnownFolderPath (plik nagłówkowy Shlobj.h).