Open.doc

(35 KB) Pobierz

Open() otwiera plik do realizacji kolejnych operacji. W def funkcji podajemy nazwe pliku oraz sposób otwarcia.
O_CREAT – jeśli nie ma pliku to go tworzy
O_TRUNC – jeśli plik istnieje i jest zwykłym plikiem i tryb otwarcia pozwala na zapis to ten plik zostanie obcięty do dl. O_RDONLY albo O_WONLY analog otworza w trybue tylko do odczytu albo zapisu.
Close() wskazującej na plik. Zamyka deskryptor pliku tak, ze nie odnosi się pozniej do zadnego pliku i może być ponownie uzyty. W przypadku niepowiodzenia zwraca -1 i odpowieni Erno
Read() wskazującej na otwarty do czytania plik z informacja o liczbie danych (bajtow), które chcemy odczytac (0 End). Może się zdarzyc ze f-cja odczyta mniejsza ilość danych niż rzadalismy, (chwilowo dostępnych jest mniej bajtow, lub read zostalo przerwane sygnalem).
Write()wskazującej na plik z zadana liczba bajtow, która chcemy zapisac. Może zdarzyc się ze f-cja zapisala mniejsza ilość danych niż chcelismy. POSIX wymusza by read które może pojawic się po zakończeniu write zwróciło nowe dane. Po pomyślnym zakończeniu zwracana jest l zap bajtow (0 nic

Kontrolki
a) Każda kontrolka is oddzielnym oknem-potomne wzgl tego gdzie jest
b) Kontrolki dodajemy korzystając z pliku z zasobami, albo tworzymy programowo, jak inne okna, za pomocą CreateWindowEx(), jako nazwę klasy okna podając jedną z predefiniowanych nazw (Button, Combox) Przy tworzeniu okna kontrolki do opcji stylu dodajemy WS_CHILD.
c) Komunikujemy się z nimi wysyłając komunikaty WM_SETTEXT
d) Kontrolę nad wyglądem przycisku zapewniają nam style przycisku,
które podajemy podczas tworzenia okna-przycisku (Checkbox,top,icon)
Stan przycisku sprawdzamy BM_GETCHECK albo BM_GETSTATE,                                                          
ustawić wysyłając komunikat BM_SETCHECK albo BM_SETSTATE.
focus state: (ma focus, bądź nie). 
push state: (jest właśie wciskany, bądź nie)
check state: (zaznaczony, odznaczony i dodatkowo nieokreślony).
BS_PUSHBUTTON – zwykly button
musi mieć styl WS_NOTIFY jeśli chce dostac szczegółowe powiadomienia

Mysz
WM_MOUSEMOVE – sygnalizuje, że nastąpił ruch myszy nad obszarem
klienckim naszego okna. Każda zmiana współrzędnych
kursora myszy generuje komunikat, ale jeśli okno nie nadąża z
przetwarzaniem komunikatów, system usuwa je z kolejki. W
konsekwencji liczba zarejestrowanych przez nas komunikatów
zależy od tego, jak szybko je obsługujemy. Im szybciej się
wykonuje procedura obsługi komunikatu WM_MOUSEMOVE, tym
precyzyjniej śledzimy ruch myszy (dostając więcej komunikatów).
WM_MOUSEWHEEL – pokręcono kółkiem myszy.
WM_MOUSEACTIVATE – okno zostało aktywowane kliknięciem
myszki. Na ogół ta wiadomość jest dla nas oczywista i nie
reagujemy na nią, ale możemy to zrobić (np. jeśli nie godzimy się
na aktywowanie).

Hover/leave
Dwa dodatkowe komunikaty: WM_MOUSEHOVER i
WM_MOUSELEAVE są przekazywane do okna, tylko jeśli sobie tego
zażyczymy. Mówią one o tym, że kursor
myszki przebywał (co najmniej) przez pewien zadany czas w
pewnym zadanym prostokącie (hover) i że go opuścił (leave).

Przechwytywanie (capture) Normalnie komunikaty myszy trafiają

do okna, w którym znajduje się punkt istotny (hot-spot) kursora w

danej chwili. Czasem chcemy zmienić to zachowanie, wówczas

komunikat o puszczeniu klawisza normalnie nie dotarłby do naszego

okna, ponieważ hot-spot kursora znajduje się poza oknem.

Clipping. ograniczamy ruchy myszki do

pewnego obszaru. Za pomocą funkcji ClipCursor() możemy zażądać ograniczenia położenia

kursora do zadanego prostokąta.

Przeciągnij-i-upuść (drag-and-drop). Dosyć skomplikowane. Łatwo

a to można obsłużyć przeciąganie plików do okna naszej

aplikacji. raz wywołać DragAcceptFiles(), żeby zgłosić, że chcemy

być odbiorcą przeciąganych plików

 

...
Zgłoś jeśli naruszono regulamin