====== Kontrolki i Pliki ====== ===== Notatnik cd. ===== Na oknie głównym umieść kontrolkę edycyjną, która wypełni całą powierzchnię okna. Przy zmianie okna głównego kontrolka edycyjna powinna dopasowywać odpowiednio swoje rozmiary. Dodaj do menu możliwość zapisu zawartości kontrolki edycyjnej do pliku tekstowego oraz możliwość wczytania zawartości pliku tekstowego do kontrolki edycyjnej. Wybór pliku do odczytu/zapisu odbywa się za pomocą odpowiednich okien dialogowych pochodzących z biblioteki Common Controls. Dodaj status bar informujący o wykonanej ostatnio akcji (zapis / odczyt, nazwa pliku ), numer wiersza i numer znaku w wierszu. [[https://msdn.microsoft.com/en-us/library/windows/desktop/bb775493(v=vs.85).aspx|Common controls]] * plik nagłówkowy: ''commctrl.h'' * plik biblioteki linkowany z projektem: ''comctl32.lib'' * [[https://msdn.microsoft.com/en-us/library/windows/desktop/bb775695(v=vs.85).aspx|InitCommonControls()]] lub [[https://msdn.microsoft.com/en-us/library/windows/desktop/bb775697(v=vs.85).aspx|InitCommonControlsEx()]] funkcja inicjująca bibliotekę File Dialogs * [[https://msdn.microsoft.com/en-us/library/windows/desktop/ms646839(v=vs.85).aspx|OPENFILENAME]] struktura zawierająca informacje dla dwóch poniższych funkcji * [[https://msdn.microsoft.com/en-us/library/windows/desktop/ms646927(v=vs.85).aspx|GetOpenFileName()]] otwiera okno dialogowe do wyboru pliku * [[https://msdn.microsoft.com/en-us/library/windows/desktop/ms646928(v=vs.85).aspx|GetSaveFileName()]] tworzy kontrolkę dialogową do wyboru pliku do zapisu Zapis/odczyt z plików * [[https://msdn.microsoft.com/en-us/library/windows/desktop/aa363858(v=vs.85).aspx|CreateFile()]] tworzenie pliku * [[https://msdn.microsoft.com/en-us/library/windows/desktop/ms724211(v=vs.85).aspx|CloseHandle()]] * [[https://msdn.microsoft.com/en-us/library/windows/desktop/aa364955(v=vs.85).aspx|GetFileSize()]] * [[https://msdn.microsoft.com/en-us/library/windows/desktop/aa365467(v=vs.85).aspx|ReadFile()]] odczyt danych z pliku * [[https://msdn.microsoft.com/en-us/library/windows/desktop/aa365747(v=vs.85).aspx|WriteFile()]] zapis danych do pliku [[https://msdn.microsoft.com/en-us/library/windows/desktop/bb760726(v=vs.85).aspx|Status bar]] * klasa okien ''STATUSCLASSNAME'' * [[https://msdn.microsoft.com/en-us/library/windows/desktop/bb760757(v=vs.85).aspx|SB_SETPARTS]] na ile części podzielić * [[https://msdn.microsoft.com/en-us/library/windows/desktop/bb760758(v=vs.85).aspx|SB_SETTEXT]] wstawienie tekstu do status bara Zmiana rozmiaru okna: * [[https://msdn.microsoft.com/en-us/library/windows/desktop/ms632646(v=vs.85).aspx|WM_SIZE]] komunikat wysyłany po zmianie rozmiaru okna * [[https://msdn.microsoft.com/en-us/library/windows/desktop/ms633519(v=vs.85).aspx|GetWindowRect]] rozmiary całego okna * [[https://msdn.microsoft.com/en-us/library/windows/desktop/ms633503(v=vs.85).aspx|GetClientRect]] rozmiary obszaru klienckiego * [[https://msdn.microsoft.com/en-us/library/windows/desktop/ms633545(v=vs.85).aspx|SetWindowPos]] ustawienie pozycji i rozmiaru okna