| MFC syventävät |
| Tehtävä 1 |
| Kirjoita
ohjelma, jossa käyttäjä voi valita lottonumerot. Ohjelmassa on
CListBox-luokan luetteloruutu, kymmenen
tekstiruutua numeroille taulukkona (CStatic m_ctlStatic[i]) ja kaksi
kuvassa olevalle tekstille ja nappi. Luetteloruudusta voi
tuplanaputtamalla valita oikeat numerot ja ne tulevat oikeassa järjestyksessä,
alusta alkaen omiin lokeroihinsa. 'Reset'-nappi käynnistää
ohjelman uudestaan. Se siis kirjoittaa luetteloruutuun numerot
uudelleen ja tyhjentää numerolaatikot.

Ratkaisu: lotto.cpp
lotto.h
|
| Tehtävä 2 |
| Kirjoita
ohjelma, jossa on editbox ja listbox. Edittiin kirjoitettu teksti
voidaan lisätä listboxiin 'Lisää listaan'-napilla. Listasta
voidaan poistaa rivi tuplanapauttamalla tai 'Poista rivi'-napilla.
Listan voi tyhjentää 'Tyhjennä lista'-napilla. Tilarivillä
seurataan kokoajan tapahtumia siten, että kun käyttäjä tekee
jotain sinne tulee ilmoitus tapauksesta kuten 'lisäsit rivin
listaan', 'tyhjensit listan' jne. Oikeanpuoleisessa pikkulokerossa
seurataan listboxin rivien lukumäärää. Ohjelman täytyy pystyä
myös muuttamaan kontrollien kokoa kun lomakkeen kokoa muutetaan.
Huomaa myös oikea fontti.

Ratkaisu: rivit.cpp
rivit.h
|
| Tehtävä 3 |
Kirjoita
kello. Piirrä kellotaulu ja viisarit LineTo()-funktiolla. Varaa
kerran sekunnissa toimiva Timer-kontrolli ja kutsu sieltä WM_PAINT
sanomaa, jolloin Windows itse pyyhkii vanhat viisarit pois. Ohjelman
täytyy osata skaalata viisarit oikean kokoisiksi riippumatta
ikkunan koosta. Kellotaulun ympyrämuodon kaava voidaan laskea
sin()- ja cos()-funktioilla. Kun origo on vasemmassa yläkulmassa,
kaavan koordinaatit ovat muotoa,
- Keskipiste: ikkunan_leveys/2-ikkunan_korkeus/2
-
X-koordinaatti: ikkunan_leveys/2+sin(x)*haluttu_etäisyys_keskipisteestä
- Y-koordinaatti: ikkunan_korkeus/2-cos(x)*haluttu_etäisyys_keskipisteestä
jossa x on haluttu kulma radiaaneissa (00:00 on nolla ja
12:00 on 2*PII radiaania).

Ratkaisu: kello.cpp
kello.h
|
| Tehtävä 4 |
| Kirjoita
ohjelma, joka osaa muuntaa valuuttoja kuvan esittämällä tavalla.
'-->'-nappi siirtää Valuutta 1:n edit-kontrolliin kirjoitetun
valuuttamäärän Valuutta 2:n edit-kontrolliin valittuun
valuuttamuotoon ja päinvastoin. Jos muunnos ei ole mahdollinen
palautetaan pelkästään 0.

Ratkaisu: valuutta.cpp
valuutta.h
|
| Tehtävä 5 |
| Kirjoita
ohjelma, jossa käyttöliittymä on viimeistelty. Lomakkeen
kentrollien välillä pystyy liikkumaan tabulaattorilla,
painonappeja pystyy käyttämää ALT + alleviivattu_kirjain
yhdistelmällä, vierityspalkkeja pystyy liikuttamaan nuolinäppäimillä
sekä Page Up, Page Down, Home ja End
näppäimillä, ohjelman pystyy aktivoimaan (kun se on kerran
käynnistetty) näppäinyhdistelmällä CTRL + F12 mistä
tahansa kohtaa järjestelmästä sekä lomakkeen minimikoko on
asetettu 400 * 200 pikseliin (lomaketta ei saa pienemmäksi). Itse
ohjelma piirtää lomakkeelle ympyrän jonka väri pystytään
vaihtamaan vierityspalkeilla tai painonapeilla. Käytä RGB (red,
green, blue) väriyhdistelmää.

Ratkaisu: ui.cpp
ui.h
|