1 / 15

Objektno programiranje (C++)

S veučilište u Z agrebu PMF – Matematički odjel. Objektno programiranje (C++). Vježbe 09 – MFC Windows forme. Vinko Petričević. Kreiranje forme. Prilikom kreiranje prozora, prozor dobiva prozor dobiva poruku WM_CREATE na kojem je moguće postaviti neka inicijalizacijska svojstva

uriah-hood
Download Presentation

Objektno programiranje (C++)

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. Sveučilišteu Zagrebu PMF – Matematički odjel Objektno programiranje (C++) Vježbe 09 – MFC Windows forme Vinko Petričević

  2. Kreiranje forme • Prilikom kreiranje prozora, prozor dobiva prozor dobiva poruku WM_CREATE na kojem je moguće postaviti neka inicijalizacijska svojstva • ako radimo s dijalogom (klasa je naslijeđena iz CDialog), potrebno je preraditi metodu OnInitDialog(). • Npr, možemo naredbom MoveWindow postaviti drugačiju poziciju prozora: • CRect myRect;// GetClientRect(&myRect);GetWindowRect(&myRect);// ClientToScreen(myRect);MoveWindow(100,200, myRect.Width(), myRect.Height());

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

  4. Zadatak 1 • Napravite program koji ima 1 formu. • forma treba biti na poziciji (100,100), te treba imati check-box pomoću kojeg je moguće omogućiti unos teksta u edit kontroli koja mijenja naslov programa

  5. CWnd • bazna klasa za rad s prozorima • GetDlgItem – daje pokazivač na element dijaloga • Create – kreira prozor • ShowWindow – prizkazuje/skriva određeni element • EnableWindow – o(ne)mogućuje rad s prozorom • IsDlgButtonChecked – provjerava stanje chechbuttonCheckDlgButton – mijenja njegovo stanje • možemo i elementu dijaloga pridijeliti varijablu, kontrolnu ili vrijednosnu

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

  7. Kreiranje forme • novu formu kreiramo naredbom DoModal ili (nakon Create) ShowWindow • CFrameWnd w; w.Create(0, "naslov“, WS_VISIBLE| WS_CAPTION|…); w.ShowWindow(SW_NORMAL);

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

  9. Kreiranje forme • OnShowWindow • OnActivateWindow • OnPaint

  10. Zadatak 4 • Napravite program koji ima 2 prozora • u prvom neka bude edit kontrola u koju unosimo boju • drugi neka ima četverokut te boje (Rectangle, CPen) • neka stanje aktiviranosti bude u naslovu: • switch( nState ) {case WA_ACTIVE: SetWindowText(“Aktiviran bez miša"); break; case WA_INACTIVE: SetWindowText(“Deaktiviran"); break; case WA_CLICKACTIVE: SetWindowText(“Aktiviran mišem"); break; }

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

  12. Zadatak 6 • Napišite program koji ima gumb Dodaj, koji se nalazi u donjem desnom dijelu forme, te se pomiče zajedno s njim prilikom resizanja forme. Pilikom klika na njega, na formu dodaje novi gumb na poziciji 200,200

  13. Zadatak 7 • Napišite program koji prilikom klika miša u aslovu ispisuje poziciju miša, dok je miš stisnut takođe se ispisuje pozicija, sve dok ne pustimo gumb

  14. WM_CLOSE • poziva se prilikom pokušaja zatvaranja prozora • obrađuje ju metoda OnClose. Na njoj možemo provjeriti želi li korisnik stvarno zatvoriti prozor, te ako želo, pozovemo metodu OnClose bazne klase • nakon zatvaranja poziva se WM_DESTROY koji poziva OnDestroy, koja uništava sam prozor

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

More Related