Okna potomne i komunikacja między oknami
Dodaj do okna przykładowe kontrolki: przycisk (BUTTON), kontrolkę edycyjną (EDIT), pole statyczne (STATIC). Przykład użycia:
- pole edycyjne pozwala na wprowadzanie wielu linii tekstu
- przycisk kopiuje tekst z kontrolki edycyjnej do pola statycznego
Przydatne referencje:
-
- Button control - przycisk, jednym z rodzajów przycisku jest check box
- Edit control - pole edycyjne
- Dynamiczna alokacja pamięci: GlobalAlloc, GlobalFree
-
- WM_COMMAND - komunikat wysyłamy przez kontrolki do rodzica
Dodaj do okna głównego kontrolkę check box, która włacza/wyłącza działanie przycisku.
Przydatne referencje:
- GetWindowLong - pozwala uzyskać informacje o oknie, np. aktualny styl okna (GWL_STYLE)
- SetWindowLong - pozwala ustawić właściwości okna, np. styl lub nową procedurę okna
- Stan check boxa:
- IsDlgButtonChecked - czy zaznaczony (komunikat BM_GETCHECK)
- CheckDlgButton - zaznacz (BST_CHECKED/BST_UNCHECKED), komunikat BM_SETCHECK
- InvalidateRgn - wyuszenie odświrzenia okna/regionu
Dodaj menu zawierające pozycje:
- Plik
- Nowy - usuwa tekst z pola edycyjnego
- Koniec - zamyka aplikację
- Edycja
- Kopiuj - kopiuje tekst z pola edycyjnego do schowka
- Wklej - wkleja zawartość schowka do pola edycyjnego
- Wytnij
Kliknięcie prawego klawisza myszy niech wyświetla menu kontekstowe z zawartością podmenu Edycja (Kopij, Wklej, Wytnij).
Przydatne referencje:
- SendMessage - funkcja wysyłająca komunikaty
-
-
- CreateMenu - funkcja tworząca menu
- AppendMenu - dodawanie elementów do menu
- SetMenu - przypisanie menu do okna
- Menu kontekstowe:
- TrackPopupMenu wyświetla menu kontekstowe
- SetForegroundWindow - ustawienie wątku okna na pierwszym planie
- GetCursorPos - aktualna pozycja okna
Dodakowe zadania
- Napisz program, który w kontrolce List Box wyświetli listę wszystkich procesów działających w systemie.
- Napisz program, który za pomocą kontrolek check box, radio button lub/i combo box pozwala zmieniać w dodolny sposób style okna głownego.