====== 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: * checkox wyłacza/włącza działanie przycisku * pole edycyjne pozwala na wprowadzanie wielu linii tekstu * przycisk kopiuje tekst z kontrolki edycyjnej do pola statycznego Przydatne referencje: * [[https://msdn.microsoft.com/en-us/library/windows/desktop/bb773169%28v=vs.85%29.aspx|Control library (MSDN)]] * [[https://msdn.microsoft.com/en-us/library/windows/desktop/bb775943%28v=vs.85%29.aspx|Button control]] * [[https://msdn.microsoft.com/en-us/library/windows/desktop/bb775458%28v=vs.85%29.aspx|Edit control]] * [[https://msdn.microsoft.com/en-us/library/windows/desktop/ms632600%28v=vs.85%29.aspx|Style okien]] * [[https://msdn.microsoft.com/en-us/library/windows/desktop/ms633520%28v=vs.85%29.aspx|GetWindowText]], [[https://msdn.microsoft.com/en-us/library/windows/desktop/ms633521%28v=vs.85%29.aspx|GetWindowTextLenght]], [[https://msdn.microsoft.com/en-us/library/windows/desktop/ms633546%28v=vs.85%29.aspx|SetWindowText]] * [[https://msdn.microsoft.com/en-us/library/windows/desktop/aa366574%28v=vs.85%29.aspx|GlobalAlloc]], [[https://msdn.microsoft.com/en-us/library/windows/desktop/aa366579%28v=vs.85%29.aspx|GlobalFree]] * [[https://msdn.microsoft.com/en-us/library/windows/desktop/ff468921%28v=vs.85%29.aspx|Komunikaty okna]] * [[https://msdn.microsoft.com/en-us/library/windows/desktop/ms647591%28v=vs.85%29.aspx|WM_COMMAND]] Dodaj do okna głównego kontrolkę //check box//, która włacza/wyłącza działanie przycisku. Przydatne referencje: * [[https://msdn.microsoft.com/en-us/library/windows/desktop/ms633584(v=vs.85).aspx|GetWindowLong]] - pozwala uzyskać informacje o oknie, np. aktualny styl okna (GWL_STYLE) * [[https://msdn.microsoft.com/en-us/library/windows/desktop/ms633591(v=vs.85).aspx|SetWindowLong]] - pozwala ustawić właściwości okna, np. styl lub nową procedurę okna * Stan check boxa: * [[https://msdn.microsoft.com/en-us/library/windows/desktop/bb761879(v=vs.85).aspx|IsDlgButtonChecked]] - czy zaznaczony (komunikat [[https://msdn.microsoft.com/en-us/library/windows/desktop/bb775986(v=vs.85).aspx|BM_GETCHECK]]) * [[https://msdn.microsoft.com/en-us/library/windows/desktop/bb761875(v=vs.85).aspx|CheckDlgButton]] - zaznacz (BST_CHECKED/BST_UNCHECKED), komunikat [[https://msdn.microsoft.com/en-us/library/windows/desktop/bb775989(v=vs.85).aspx|BM_SETCHECK]] * [[https://msdn.microsoft.com/en-us/library/windows/desktop/dd145003(v=vs.85).aspx|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: * [[https://msdn.microsoft.com/en-us/library/windows/desktop/ms644950%28v=vs.85%29.aspx|SendMessage function]] * [[https://msdn.microsoft.com/en-us/library/windows/desktop/ff468921%28v=vs.85%29.aspx|Komunikaty okna]] * [[https://msdn.microsoft.com/en-us/library/windows/desktop/ms649022(v=vs.85).aspx|WM_COPY]] * [[https://msdn.microsoft.com/en-us/library/windows/desktop/ms649023(v=vs.85).aspx|WM_CUT]] * [[https://msdn.microsoft.com/en-us/library/windows/desktop/ms649028(v=vs.85).aspx|WM_PASTE]] * [[https://msdn.microsoft.com/en-us/library/windows/desktop/ms649020(v=vs.85).aspx|WM_CLEAR]] * [[https://msdn.microsoft.com/en-us/library/windows/desktop/ms646977%28v=vs.85%29.aspx|Menu]] * [[https://msdn.microsoft.com/en-us/library/windows/desktop/ms647624%28v=vs.85%29.aspx|CreateMenu function]] * [[https://msdn.microsoft.com/en-us/library/windows/desktop/ms647616%28v=vs.85%29.aspx|AppendMenu function]] * [[https://msdn.microsoft.com/en-us/library/windows/desktop/ms647995%28v=vs.85%29.aspx|SetMenu function]] * Menu kontekstowe: * [[https://msdn.microsoft.com/en-us/library/windows/desktop/ms648002(v=vs.85).aspx|TrackPopupMenu]] wyświetla menu kontekstowe * [[https://msdn.microsoft.com/en-us/library/windows/desktop/ms633539(v=vs.85).aspx|SetForegroundWindow]] - ustawienie wątku okna na pierwszym planie * [[https://msdn.microsoft.com/en-us/library/windows/desktop/ms648390(v=vs.85).aspx|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.