Windows Shell
Zadanie 1 Ikona w pasku zadań
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.
Zadanie 2 - Zestaw podręcznych narzędzi
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
).