Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałBeata Klimek Został zmieniony 9 lat temu
1
Wykład 10 Programowanie w Windows 1.Aplikacja dialogowa (Dialog Based) PO10-1 / 26
2
Aplikacja dialogowa 1.Propozycja aplikacji 2.Projektowanie interfejsu 3.Pokazanie okna „About” 4.Zmienne dla kontrolek 5.Obsługa przycisków PO10-2 / 26
3
Propozycja aplikacji PO10-3 / 26
4
Projekt interfejsu PO10-4 / 26
5
Projekt interfejsu PO10-5 / 26
6
Interface PO10-6 / 26
7
Obsługa przycisku „About” 1.Wybierając „Add Event Handler...” w kontekstowym menu przycisku „O Programie” otwieramy okno „Event Handler Wizard”. 2.Do obiektu IDC_BUTTON4 dodajemy funkcję obsługi komunikatu BN_CLICKED. 3.Akceptujemy nazwę funkcji „OnBnClickedButton4”. 4.Edytujemy funkcję wpisując do niej kod w języku C++. PO10-7 / 26
8
Programowanie obsługi „About” PO10-8 / 26
9
Działanie programu PO10-9 / 26
10
Zmienne kontrolek PO9-10 / 26 int CButton CString, int, UINT, long, DWORD, float,double, BYTE, short, BOOL, COleDateTime, COleCirrency BOOL CStatic CString int CSpinPuttonCtrl int CProgressCtrl
11
Zmienne kontrolek PO9-11 / 26 CHotKeyCtrl CListCtrl CTabCtrl CTreeCtrl CAnimateCtrl Ctime, COleDateTime CIPAddressCtrl Cstring, int CString, int, UINT, long, DWORD, float,double, BYTE, short, BOOL, COleDateTime, COleCirrency CButton CNetAddressCtrl CSplitButton CLinkCtrl
12
MFC ClassWizard PO10-12 / 26
13
Obsługa zdarzeń 1.Przenieś dane z kontrolek do ich zmiennych. 2.Wykonaj zadane działania (m_Wynik=m_X+m_Y, m_Wynik=m_X/m_Y lub m_X=m_Wynik) 3.Przenieś dane ze zmiennych do ich kontrolek. Obsługa przycisków „Dodaj”, „Podziel” i „Wynik -> X” jest bardzo podobna. Do klasy okna dialogowego „CDzialaniaDlg” dodamy funkcję „Oblicz(int)” realizującą algorytm: PO10-13 / 26
14
Dopisanie funkcji PO10-14 / 26
15
Obsługa przycisków PO10-15 / 26
16
Program PO10-16 / 26
17
Dezaktywacja klawisza PO10-17 / 26
18
Inicjacja dialogu PO10-18 / 26
19
Aplikacja PO10-19 / 26
20
Przykład 2 PO10-20 / 26
21
Grupa przycisków PO10-21 / 26
22
Inicjacja PO10-22 / 26
23
Tekst przycisku PO10-23 / 26 void CGrupaDlg::OnRadio1( ) { ((CEdit*)GetDlgItem(IDC_BUTTON2))->SetWindowText(_T("Dodaj")); } void CGrupaDlg::OnRadio2( ) { ((CEdit*)GetDlgItem(IDC_BUTTON2))->SetWindowText(_T("Odejmij")); } void CGrupaDlg::OnRadio3( ) { ((CEdit*)GetDlgItem(IDC_BUTTON2))->SetWindowText(_T("Pomnóż")); } void CGrupaDlg::OnRadio4( ) { ((CEdit*)GetDlgItem(IDC_BUTTON2))->SetWindowText(_T("Podziel")); }
24
Obliczenia PO10-24 / 26 void CGrupaDlg::OnButton2( ) { UpdateData( ); switch(m_zadanie){ case 0: wynik = m_X + m_Y; break; case 1: wynik = m_X – m_Y; break; case 2: wynik = m_X * m_Y; break; case 3: wynik = m_Y ? m_X / m_Y : 0; break; } m_Txt.Format(_T("%.*f"), m_prec, wynik); CEdit* pEdit=(CEdit*)GetDlgItem(IDC_EDIT3); pEdit -> SetWindowText(m_Txt); }
25
Zerowy dzielnik PO10-25 / 26 void CGrupaDlg::OnRadio1( ) { ((CEdit*)GetDlgItem(IDC_BUTTON2))->SetWindowText(_T("Dodaj")); (GetDlgItem(IDC_BUTTON2))->EnableWindow(TRUE); }... void CGrupaDlg::OnRadio3( ) { ((CEdit*)GetDlgItem(IDC_BUTTON2))->SetWindowText(_T("Pomnóż")); (GetDlgItem(IDC_BUTTON2))->EnableWindow(TRUE); } void CGrupaDlg::OnRadio4( ) { ((CEdit*)GetDlgItem(IDC_BUTTON2))->SetWindowText(_T("Podziel")); UpdateData( ); if(m_Y==0) (GetDlgItem(IDC_BUTTON2))->EnableWindow(FALSE); } void CGrupaDlg::OnRadio4( ) { ((CEdit*)GetDlgItem(IDC_BUTTON2))->SetWindowText(_T("Podziel")); UpdateData( ); if(m_Y==0) (GetDlgItem(IDC_BUTTON2))->EnableWindow(FALSE); } void CGrupaDlg::OnEnChangeEdit2( ) { if(m_zadanie!=3) return; CString S; (GetDlgItem(IDC_EDIT2))->GetWindowText(S); double x=_wtof(S); (GetDlgItem(IDC_BUTTON2))->EnableWindow(x!=0); }
26
Symulacja PO10-26 / 26
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.