1 / 35

Wykład 1

Wykład 1. Programowanie w Windows. Programowanie zdarzeniowe AppWizard Aplikacja dialogowa (Dialog based). PO01-1 / 40. Program proceduralny i zdarzeniowy. Program proceduralny wykonuje kolejne funkcje krok po kroku.

fionn
Download Presentation

Wykład 1

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Wykład 1 Programowanie w Windows • Programowanie zdarzeniowe • AppWizard • Aplikacja dialogowa (Dialog based) PO01-1 / 40

  2. Program proceduralny i zdarzeniowy Program proceduralny wykonuje kolejne funkcje krok po kroku. Jeśli czeka na zdarzenie, to na zdarzenie ściśle określone w danym momencie (wprowadzenie danych, wybór opcji menu, naciśnięcie klawisza itp.). Program zdarzeniowy wykonuje funkcje w odpowiedzi na zdarzenia. Czeka na dowolne zdarzenie przewidziane do obsługi. PO01-2 / 40

  3. Program proceduralny Przykład Start Zdefiniuj początkowe obiekty i zainicjuj je Czekaj na zdarzenie (np. na wprowadzenie danych) Przetwarzaj dane Czekaj na zdarzenie (np. na zapisanie wyników) Zamknij aplikację Stop PO01-3 / 40

  4. Program zdarzeniowy Start Zdefiniuj początkowe obiekty i zainicjuj je Czekaj na zdarzenie Czy zamknąć aplikację? Nie Tak Wykonaj funkcję obsługi zdarzenia Wykonaj funkcję obsługi zdarzenia i zamknij aplikację Stop PO01-4 / 40

  5. Obsługa zdarzenia Przekaż obsługę zdarzenia do aplikacji Czy aplikacja obsłuży je? Nie Tak Przekaż obsługę zdarzenia do Windowsa Wykonaj funkcję obsługi zdarzenia PO01-5 / 40

  6. AppWizard • Tworzenie projektu MFC AppWizard • Programowanie interfejsu • Kontrolki i ich klasy • Komunikaty generowane przez kontrolki PO01-11 / 40

  7. Projekt MFC AppWizard Interfejs oraz szkielet programu generowany przez AppWizard Funkcje obsługi zdarzeń Użytkownik Zasoby programu Dialog Based Single Document MFC = Microsoft Foundation Class Multiple Documents PO01-12 / 40

  8. Tworzenie projektu PO01-13 / 40

  9. Tworzenie projektu (2) PO01-14 / 40

  10. Tworzenie projektu (3) PO01-15 / 40

  11. Tworzenie projektu (4) PO01-16 / 40

  12. Programowanie interfejsu PO01-17 / 40

  13. Wybrane klasy MFC MFC = Microsoft Foundation Class CObject CCmdTarget CWnd CButton CEdit CListBox CStatic CScrollBar COleControl CTabCtrl CAnimateCtrl CComboBox CSliderCtrl CProgressCtrl CMonathCalCtrl CDateTimeCtrl PO01-18 / 40

  14. Zestaw kontrolek PO01-19 / 40

  15. Wybór Ilustracja Statyczne pole tekstowe Pole edycji xyz Przycisk Grupa obiektów Przełącznik opcji Pole wyboru Pole listy Lista rozwijana Pasek przewijania poziomego Pasek przewijania pionowego Przewijanie pionowe listy Wskaźnik postępu Suwak „Gorący” klawisz Okno listy szczegółowej Drzewo Element animowany Karty Pole tekstu formatowanego Próbnik daty i godziny Kalendarz Pole adresu IP Kontrolka użytkownika Rozszerzone okno listy rozwijanej Zestaw kontrolek   PO01-20 / 40

  16. CStatic CEdit xyz CButton CButton CButton CComboBox CListBox CScrollBar CScrollBar CSpinPuttonCtrl CProgressCtrl CSliderCtrl CHotKeyCtrl CListCtrl CTreeCtrl CTabCtrl CAnimateCtrl CRichEditCtrl CDateTimeCtrl CMonthCalCtrl CIPAddressCtrl COleControl CComboBoxEx Klasy kontrolek   PO01-21 / 40

  17. xyz Generowane komunikaty  EN_CHANGE, EN_KILLFOCUS, EN_SETFOCUS, EN_ERRSPACE, EN_HSCROLL, EN_VSCROLL, EN_MAXTEXT BN_CLICKED, BN_DOUBLECLICKED BN_CLICKED, BN_DOUBLECLICKED CBN_CLOSEUP, CBN_DROPDOWN, CBN_DBLCLK, CBN_EDITCHANGE, CBN_EDITUPDATE, CBN_ERRSPACE, CBN_KILLFOCUS, CBN_SETFOCUS, CBN_SELCHANGE, CBN_SELENDOK, CBN_SELNDCANCEL BN_CLICKED, BN_DOUBLECLICKED  LBN_DBLCLICK, LBN_KILLFOCUS, LBN_SETFOCUS, LBN_SELCANCEL, LBN_ERRSPACE, LBN_SELCHANGE NM_OUTOFMEMORY NM_OUTOFMEMORY, UDN_DELTAPOS NM_OUTOFMEMORY, NM_CUSTODRAW, NM_RELEASEDCAPTURE NM_OUTOFMEMORY NM_CLICK, NM_DBLCLK, NM_KILLFOCUS, NM_RETURN, . . . NM_CLICK, NM_DBLCLK, NM_KILLFOCUS, NM_RETURN, . . . NM_CLICK, TCN_SELCHANGE, NM_RCLICK, TCN_KEYDOWN . . . NM_OUTOFMEMORY DTN_CLOSEUP, DTN_DROPDOWN, ... NM_KILLFOCUS, NM_RETURN, . . . NM_CLICK, NM_DBLCLK, NM_KILLFOCUS, NM_RCLICK, . . . IPN_FIELDCHANGED MCN_GETDAYSTATE, MCN_SELECT, MCN_SELCHANGE, MCN_RELEASECAPTURE, . . . CBN_EDITCHANGE, CBN_CLOSEUP, CBN_DBLCLK, CBN_KILLFOCUS, . . . PO01-22 / 40

  18. Kontekstowe menu kontrolki PO01-23 / 40

  19. Okno komunikatów Lista komunikatów kontrolki „Edit Box”, którym nie zdefiniowano funkcji obsługi Lista komunikatów kontrolki „Edit Box”, którym zdefiniowano funkcje obsługi Opis zdarzenia generującego podświetlony komunikat PO01-24 / 40

  20. Aplikacja dialogowa • Propozycja aplikacji • Projektowanie interfejsu • Pokazanie okna „About” • Zmienne dla kontrolek • Obsługa przycisków PO01-25 / 40

  21. Propozycja aplikacji PO01-26 / 40

  22. Projekt interfejsu PO01-27 / 40

  23. Okna właściwości PO01-28 / 40

  24. Interface PO01-29 / 40

  25. Obsługa przycisku „About” • Wybierając „Events...” w kontekstowym menu przycisku„About” otwieramy okno dodawania nowych handlerów. • Do obiektu IDC_BUTTON4 dodajemy funkcję obsługikomunikatu BN_CLICKED. • Akceptujemy nazwę funkcji „OnButtom4”. • Edytujemy funkcję wpisując do niej kod w języku C++. PO01-30 / 40

  26. Programowanie obsługi „About” PO01-31 / 40

  27. Działanie programu PO01-32 / 40

  28. xyz Zmienne kontrolek  CString, int, UINT, long, DWORD, float,double, BYTE short, BOOL, COleDateTime, COleCirrency CStatic CButton BOOL int  CString CString int int CSpinPuttonCtrl CProgressCtrl int CHotKeyCtrl CListCtrl CTreeCtrl CTabCtrl CAnimateCtrl CString, int, UINT, long, DWORD, float,double, BYTE short, BOOL, COleDateTime, COleCirrency Ctime, COleDateTime Ctime, COleDateTime CIPAddressCtrl Cstring, int PO01-33 / 40

  29. MFC ClassWizard PO01-34 / 40

  30. Obsługa zdarzeń Obsługa przycisków „Dodaj”, „Podziel” i „Wynik -> X” jest bardzo podobna. Do klasy okna dialogowego „CWyklad12Dlg” dodamy funkcję „Oblicz(int)” realizującą algorytm: • Przenieś dane z kontrolek do ich zmiennych. • Wykonaj zadane działania (Wynik=X+Y, Wynik=X/Y lub X=Wynik) • Przenieś dane ze zmiennych do ich kontrolek. PO01-35 / 40

  31. Dopisanie funkcji PO01-36 / 40

  32. Obsługa przycisków PO01-37 / 40

  33. Obsługa przycisków PO01-38 / 40

  34. Program PO01-39 / 40

  35. Dezaktywacja klawisza PO01-40 / 40

More Related