Rysowanie bitmap, pomocnicze konteksty urządzenia
Wersja A
Przenoszenie bitmapy przy pomocy myszy
- Zawartość okna roboczego programu:
- tło złożone z 2 równych części (podział w połowie szerokości okna)
- lewa część - bitmapa wczytana z pliku skalowana zawsze tak,
aby wypełnić dokładnie tę część
- prawa część - ta sama bitmapa rysowana wielokrotnie obok siebie
w swoim rozmiarze tak, aby wypełnić dokładnie tę część
- przed pierwszym wczytaniem bitmapy z pliku tło powinno być szare (RGB(128,128,128))
- bitmapa (zawarta w dołączonym do zadania pliku zip)
rysowana z wykorzystaniem dołączonej maski tak, aby zapewnić przezroczystość
niektórych części bitmapy (po prawidłowym narysowaniu bitmapa powinna
przedstawiać kwadrat i 2 litery L - jedną odwróconą)
- maskę bitmapy można modyfikować, ale powyższy efekt przezroczystości
wskazanych części musi być zachowany
- bitmapę i maskę dołączyć do zasobów programu
- Działanie programu
- naciśnięcie prawego przycisku myszy - wyświetlenie standardowego
okna dialogowego wyboru pliku
- domyślnie wybrany filtr plików *.bmp
- wybrana bitmapa powinna być rysowana w tle okna zgodnie z
powyższymi wytycznymi (do wczytania bitmapy z pliku można wykorzystać
funkcję LoadImage())
- naciśnięcie lewego przycisku myszy na nieprzezroczystym punkcie
bitmapy rysowanej z użyciem maski - rozpoczęcie przenoszenia tej
bitmapy na oknie
- kontynuacja przenoszenia aż do puszczenia lewego przycisku myszy
(podczas przenoszenia bitmapa powinna zawsze płynnie podążać za
kursorem myszy)
- po zakończeniu przenoszenia nowa pozycja bitmapy powinna zostać
zapamiętana dla poprawnego odrysowania okna
- poprawnie obsłużyć puszczenie lewego przycisku myszy poza obszarem
okna
- wyeliminować efekt mrugania podczas przenoszenia bitmapy, odrysowywania
i zmiany rozmiaru okna (WM_ERASEBKGND)
- zadbać o niszczenie tworzonych kontekstów i bitmap
- program musi działać poprawnie także w systemach Win9x
(nie używać funkcji dostępnych tylko w WinNT, w szczególności
MaskBlt())