vjezbe 09 - mfc widows forme.ppt

15
Objektno programiranje (C Objektno programiranje (C Vježbe 09 – MFC Windows forme Vježbe 09 – MFC Windows forme Vinko Petričević Vinko Petričević S veučilište veučilište u u Z Z agrebu agrebu PMF – Matematički odjel PMF – Matematički odjel

Upload: mirza-music

Post on 05-Nov-2015

229 views

Category:

Documents


0 download

TRANSCRIPT

  • Objektno programiranje (C++)Vjebe 09 MFC Windows formeVinko PetrieviSveuilite u ZagrebuPMF Matematiki odjel

    Objektno programiranje (C++) Vjebe 06 Nasljeivanje

  • Kreiranje formePrilikom kreiranje prozora, prozor dobiva prozor dobiva poruku WM_CREATE na kojem je mogue postaviti neka inicijalizacijska svojstvaako radimo s dijalogom (klasa je naslijeena iz CDialog), potrebno je preraditi metodu OnInitDialog().Npr, moemo naredbom MoveWindow postaviti drugaiju poziciju prozora:CRect myRect; // GetClientRect(&myRect); GetWindowRect(&myRect); // ClientToScreen(myRect); MoveWindow(100,200, myRect.Width(), myRect.Height());

  • Kreiranje formeSetWindowText mijenja naziv prozoramicanje prozora: CRect myRect; // GetClientRect(&myRect); GetWindowRect(&myRect); // ClientToScreen(myRect); MoveWindow(100,200, myRect.Width(), myRect.Height());mijenjanje stila prozora: ModifyStyle

  • Zadatak 1Napravite program koji ima 1 formu.forma treba biti na poziciji (100,100), te treba imati check-box pomou kojeg je mogue omoguiti unos teksta u edit kontroli koja mijenja naslov programa

  • CWndbazna klasa za rad s prozorimaGetDlgItem daje pokaziva na element dijalogaCreate kreira prozorShowWindow prizkazuje/skriva odreeni elementEnableWindow o(ne)moguuje rad s prozoromIsDlgButtonChecked provjerava stanje chechbutton CheckDlgButton mijenja njegovo stanjemoemo i elementu dijaloga pridijeliti varijablu, kontrolnu ili vrijednosnu

  • Zadatak 2Napravite program koji ima 1 formu.forma treba imati checkBox pomou kojeg je mogue promijeniti vidljivost (ShowWindow) i dostupnost (EnableWindow) jednog gumba na formi. Forma treba imati i 2 radiobuttona pomou kojeg je mogue odabrati koju stvar mijenjamo

  • Kreiranje formenovu formu kreiramo naredbom DoModal ili (nakon Create) ShowWindowCFrameWnd w; w.Create(0, "naslov, WS_VISIBLE| WS_CAPTION|); w.ShowWindow(SW_NORMAL);

  • Zadatak 3Napravite program koji ima 2 forme. Na prvoj formi trebaju biti 3 gumba. Klikom na prvi treba zavriti izvravanje programa, a klikom na drugi treba prikazati drugu formu u obliku dialogaNa drugom dijalogu treba biti samo ispisano trenutno vrijeme.Neka ima i jo jednu formu, koja se jednako ponaa, samo neka bude podignuta ShowWindow naredbom i izvedena iz CFrameWnd (i ima jedan element CStatic)

  • Kreiranje formeOnShowWindowOnActivateWindowOnPaint

  • Zadatak 4Napravite program koji ima 2 prozorau prvom neka bude edit kontrola u koju unosimo bojudrugi neka ima etverokut te boje (Rectangle, CPen)neka stanje aktiviranosti bude u naslovu:switch( nState ) { case WA_ACTIVE: SetWindowText(Aktiviran bez mia"); break; case WA_INACTIVE: SetWindowText(Deaktiviran"); break; case WA_CLICKACTIVE: SetWindowText(Aktiviran miem"); break; }

  • Zadatak 5Napiite program koji ima gumb O meni, te izbornik, sa istom stavkom.Klikom na taj gub otvara se dijalog sa nekom vlastitom slikom

  • Zadatak 6Napiite program koji ima gumb Dodaj, koji se nalazi u donjem desnom dijelu forme, te se pomie zajedno s njim prilikom resizanja forme. Pilikom klika na njega, na formu dodaje novi gumb na poziciji 200,200

  • Zadatak 7Napiite program koji prilikom klika mia u aslovu ispisuje poziciju mia, dok je mi stisnut takoe se ispisuje pozicija, sve dok ne pustimo gumb

  • WM_CLOSEpoziva se prilikom pokuaja zatvaranja prozoraobrauje ju metoda OnClose. Na njoj moemo provjeriti eli li korisnik stvarno zatvoriti prozor, te ako elo, pozovemo metodu OnClose bazne klasenakon zatvaranja poziva se WM_DESTROY koji poziva OnDestroy, koja unitava sam prozor

  • Zadatak 8Napravite dijalog koji prilikom kreiranja postavi MessageBox s pitanjem elite li spremiti, Yes No Cancel. Prilikom odabira Yes, podie messageBox s natpisom Spremanje te zatvara formu, prilikom No samo zatvara formu, a prilikom Cancel odustaje od zatvaranja dijaloga.

    18. travnja 2008.Objektno programiranje (C++) Vjebe 06 Nasljeivanje*Objektno programiranje (C++) Vjebe 06 Nasljeivanje*Objektno programiranje (C++) Vjebe 06 Nasljeivanje*Objektno programiranje (C++) Vjebe 06 Nasljeivanje*Objektno programiranje (C++) Vjebe 06 Nasljeivanje*Objektno programiranje (C++) Vjebe 06 Nasljeivanje*Objektno programiranje (C++) Vjebe 06 Nasljeivanje*Objektno programiranje (C++) Vjebe 06 Nasljeivanje*Objektno programiranje (C++) Vjebe 06 Nasljeivanje*Objektno programiranje (C++) Vjebe 06 Nasljeivanje*Objektno programiranje (C++) Vjebe 06 Nasljeivanje*Objektno programiranje (C++) Vjebe 06 Nasljeivanje*Objektno programiranje (C++) Vjebe 06 Nasljeivanje*Objektno programiranje (C++) Vjebe 06 Nasljeivanje*Objektno programiranje (C++) Vjebe 06 Nasljeivanje*Objektno programiranje (C++) Vjebe 06 Nasljeivanje