GDI, mysz, menu
Wersja C
Kolorowanie kół poprzez przenoszenie kolorów.
- Zawartość obszaru roboczego okna:
- górne 20 pikseli - pasek z kolorami
- 3 lub 7 (wybór przez opcje w menu) prostokątów jednolicie
wypełnionych różnymi kolorami
- wszystkie prostokąty jednakowego rozmiaru (z dokładnością
do 1 piksela) zawsze dokładnie wypełniające całą szerokość obszaru
roboczego okna
- pozostała część - kolorowane koła
- 4 lub 6 koła, o krawędziach rysowanych czerwonym piórem o
grubości według ustawienia z menu, wypełnionych jednolicie ostatnio
przeniesionym kolorem (albo białym, jeśli żaden nie został przeniesiony)
- koła powinny być zawsze równomiernie rozmieszczone w tej części
okna, z odstępami pomiędzy nimi oraz pomiędzy nimi a brzegami
tej części
- okno powinno mieć możliwość zmiany rozmiaru, co powinno skutkować
nowym rozmieszczeniem wszystkich elementów w taki sposób, aby powyższe
warunki były zawsze spełnione
- Działanie użytkownika:
- naciśnięcie lewego przycisku myszy na polu paska kolorów - rozpoczęcie
akcji przenoszenia koloru
- przesuwanie kursora myszy podczas akcji przenoszenia koloru -
odrysowywanie prostokąta z pola paska kolorów w aktualnej pozycji
kursora
- wykorzystać funkcję SetROP2() i wybrać taki tryb rysowania,
w którym dwukrotne narysowanie tego samego powoduje powrót do
sytuacji sprzed rysowania
- podczas przenoszenia koloru odrysowywać wyłącznie przenoszony
prostokąt
- pozycja myszy względem rogów przenoszonego prostokąta powinna
być stała podczas przenoszenia
- puszczenie lewego przycisku myszy podczas trwania akcji przenoszenia
koloru - zakończenie akcji
- przesuwany prostokąt powinien zostać odrysowany na swojej
pozycji w pasku kolorów
- jeśli lewy przycisk myszy został puszczony nad kołem - kolor
tego koła powinien zostać zmieniony na przenoszony kolor (i
odtąd koło powinno być odrysowywane tym kolorem aż do chwili
następnej zmiany)
- podczas akcji przenoszenia koloru nie tracić kontroli nad myszą
po wyjściu poza obszar okna
- Menu programu:
- opcja "7 kolorów" - wybór pomiędzy 3 i 7 prostokątami
z kolorami; zaznaczona (wykorzystać CheckMenuItem()) gdy 7 kolorów
jest aktualnie dostępnych
- opcja "6 kół" - wybór pomiędzy 4 i 6 kołami do kolorowania;
zaznaczona (wykorzystać CheckMenuItem()) gdy 6 kół jest aktualnie
rysowanych
- grupa wyboru grubości linii konturu kolorowanych kół: 1, 3 i 5
- aktualny wybór powinien być zawsze zaznaczony - wykorzystać
CheckMenuRadioItem()
- opcja powodująca przywrócenie białego koloru wszystkich kolorowanym
kołom