140 likes | 280 Views
S veučilište u Z agrebu PMF – Matematički odjel. Objektno programiranje (C++). Vježbe 10 – MFC Windows forme. Vinko Petričević. Label kontrola. koristi se za prikaz teksta ako u tekstu koristimo &, znakom iza toga ćemo moći fokusirati sljedeću kontrolu pritiskom na Alt+znak. Zadatak 1.
E N D
Sveučilišteu Zagrebu PMF – Matematički odjel Objektno programiranje (C++) Vježbe 10 – MFC Windows forme Vinko Petričević
Label kontrola • koristi se za prikaz teksta • ako u tekstu koristimo &, znakom iza toga ćemo moći fokusirati sljedeću kontrolu pritiskom na Alt+znak
Zadatak 1 • Napravite dijalog koji ima 2 label kontrole i 2 tekst kontrole • Neka je naslov jedne &Ime, a druge &Prezime • Pritiskom na Alt+I se fokusira prva, a Alt+P druga edit kontrola • Pritiskom na OK gumb neka se podigne MessageBox sa imenom i prezimenom
CListBox • klase za rad s listom • omogućava selektiranje jedne, ili više stavki • AddString i InsertString dodaje stavku • DeleteString – uklanja stavku • FindString – traži stavku • ResetContent briše sve stavke • GetCount – vraća broj stavki • GetText – određuje tekst stavke • GetSel, GetCurSel – određuje koja stavka je selektirana • SetSel, SetItemRange, SetCurSel, SelectString – selektira određenu stavku
Zadatak 3 • Napravite formu s listom o osobama. Omogućite dodavanje/editiranje stavke koristeći prethodni zadatak
Zadatak 4 • Na prethodni zadatak dodajte i ComboBox kontrolu na kojoj piše koja da li u listi pišu imena osoba, ili prezimena ili oboje
meniji • dodajmo u meni izbornik o meni koji će imati 3 podstavke. Prvu neka obrađuje aplikacija, drugu glavni prozor, a treću view. • Neka se na svakoj samo doda poruka o tome što je kliknuto
Zadatak 5 • U prethodni zadatak dodajte u sistemski meni opciju Spremi i Load pomoću koje možemo koristeći CFileDialog klasu označiti datoteku u koju želimo spremiti promjene/iz koje želimo pročitati podatke o osobama
CTreeCtrl • omogućuje da hijerarhijski zadamo kontrolu • InsertItem vraća indeks nove stavke, koju možemo koristiti kao drugi parametar, ako dodajemo nove podstavke toj stavki • tree.InsertItem("nulti"); HTREEITEM i = tree.InsertItem("prvi"); tree.InsertItem("drugi", i);
Zadatak 6 • Napišite program koji ima tree kontrolu, pomoću koje možemo određenoj kontroli dodavati djecu
CDocument/CView • klase za rad s dokumentima • CView se brine za interakciju s korisnikom (prikaz, print, obradu događaja), dok CDocument čuva podatke • aplikacija nemože postojati bez prozora. Za njega je zadužena klasa CFrameWnd, te se iz nje naslijeđuje klasa koja će biti bazni prozor. Ta klasa je obično spremljena kao CMainFrame • Gotove klase za rad s dokumentima se dijele na SDI (single document interface) i MDI (multiple document interface) • u SDI okruženju trenutno može biti otvoren samo jedan dokument (kao npr. Notepad), a u MDI okruženju može biti otvoreno više dokumenata (VS)
SDI/MDI • osnovno ponašanje prozora za rad s dikumentima je postignuta • automatsko spremanje/loadiranje • praćenje izmijena • printanje • pamćenje poslijednjih nekoliko otvorenih datoteka • ...
SDI/MDI • sučelje se automatski brine za uobičajene operacije • prilikom kreiranja novog dokumenta pozove OnNewDocumet, gdje bi trebali inicijalizirati podatke. • SetModifiedFlag naredba postavlja da li je dokument izmijenjen • OnCloseDocument se poziva prilikom zatvaranja dokumenta • OnOpenDocument i OnSaveDocument se pozivaju na otvaranju/zatvaranja • dovoljno je samo obraditi metodu Serialize da bi spremili/učitali podatke, a CDocument se brine o svemu ostalom