stworzenie i ułożenie okien roboczych tworząc w ten sposób planszę
plansza - 3x3 lub 4x4 pól (w zależności od wyboru w oknie opcji)
zawsze dokładnie jedno pole puste, reszta zawiera okna o nazwach
będących kolejnymi numerami od 1
przy wyświetleniu okna okna powinny być rozmieszczone losowo
naciśnięcie lewego przycisku myszy w obszarze klienta okna roboczego
umiejscowionego obok pustego miejsca powinno przesunąć to okno
na to miejsce
po uzyskaniu ułożenia docelowego (numery ułożone kolejno wierszami,
puste pole w prawym dolnym rogu planszy) pokazać MessageBox
z informacją
okna robocze:
ułożenie okien sąsiadująco, zgodnie z ustawionymi wymiarami
planszy
szare tło
w tytule okna i na środku obszaru klienta numer okna
uniemożliwić zamykanie okien roboczych klawiszami Ctrl+F4 lub
przyciskiem 'X' w prawym górnym rogu okna
'Opcje' (akcelerator Ctrl+O)
wyświetlenie modalnego okna dialogowego z opcjami
grupa dwóch Radio Buttons określających rozmiar planszy:
'3 x 3' i '4 x 4'
przy uruchomieniu okna dialogowego aktualnie obowiązująca
opcja powinna być zaznaczona
przycisk 'OK' - zamknięcie okna dialogowego z zapamiętaniem
dokonanego wyboru
orzycisk 'Anuluj' - zamknięcie okna dialogowego z porzuceniem
dokonanych zmian
'Okna':
'Kaskada' - standardowy mechanizm ułożenia okien
lista wszystkich otwartych okien - standardowy mechanizm MDI
'Koniec'
zakończenie pracy aplikacji
Pożądane cechy aplikacji MDI
standardowa obsługa skrótów klawiszowych wykorzystywanych w aplikacji
MDI (m.in. Ctrl+F6, Shift+Ctrl+F6)
standardowa obsługa maksymalizacji, minimalizacji i odtwarzania rozmiaru
i położenia okien roboczych
okno klienta MDI powinno mieć kolor czarny
pozwolić na zmianę rozmiaru i położenia okien roboczych
przywracać ułożenie okien roboczych po każdej zmianie rozmiaru głównego
okna aplikacji
zaniedbać efekt nakładania się na siebie okien przy ich zbyt małej
szerokości
wszystkie okna robocze powinny mieć taki sam rozmiar, maksymalny dla
danego rozmiaru głównego okna aplikacji
Wyeliminować efekty mrugania (jedyny dopuszczalny efekt to mruganie napisów
w oknach roboczych), zadbać o zawsze poprawne odświeżanie zawartości wszystkich
okien