MFC kontrollit
Mureakuha
Sisällysluettelo |
Kontrollit
Luithan Win32 osasta löytyvän esittelyn kontrolleille? Hyvä.
Siis koska MFC on oliopohjainen ohjelmointikieli, myös Windowsin kontrollit ovat olioita. Jokaista kontrollia kohden on luokka joka toteuttaa kyseisen kontrollin. MFC olioilla on kuitenkin hämmästyttävä yhdenmukaisuus Win32:n kontrolleille myös kooditasolla eikä liene yllätys että MFC on itseasiassa vain wrapperi Win32 päällä. MFC siis piilottaa Win32:n C-kielisyyden C++:n olioihin. Tämä kuitenkin on selvä askel eteenpäin ja helpottaa selvästi ohjelman ymmärtämistä. Lisää vaikeutta tämä taas tuo koska MFC sisältää "makroja" joilla kyllä lyhennetään koodia mutta jotka eivät ole missään mielessä olio-ohjelmointia. Tarkoitan tässä Message map -rakennetta joka yksinkertaisesti vain on pakollinen.
Seuraavassa MFC:n Win32:sta vastaavat kontrolliluokat.
Tärkeimpiä kontrolliluokkia
CButton (nappi)
Tehtävä: Ryhmäkehys, painonappi, valintanappi tai valintaruutu.
Tärkeimmät valitsimet:
- BS_PUSHBUTTON, painonappi
- BS_AUTORADIOBUTTON, valintanappi
- BS_AUTOCHECKBOX, valintaruutu
- BS_3STATE, kolmitilainen valintaruutu
- BS_GROUPBOX, ryhmäkehys
Tärkeimmät sanomat kontrollilta lomakkeelle:
BN_CLICKED, lapsi-ikkunaa on painettu
Tärkeimmät aliohjelmajäsenet:
- GetCheck (), palauttaa valintaruudun tai -napin tilan
- SetCheck (), asettaa valintaruudun tai -napin tilan
CStatic (tekstikehys)
Tehtävä: Esittää tekstikentän lomakkeella, jota ei voi muokata
Tärkeimmät valitsimet:
- SS_CENTER, teksti keskitetään
- SS_LEFT, teksti tasataan vasemmalle
- SS_SUNKEN, upotettu kehys
Tärkeimmät aliohjelmajäsenet: Ei yhtään
CScrollBar (vierityspalkki)
Tehtävä: Käytetään lomakkeen tai jonkin kontrollin sisällön vierittämiseen
Tärkeimmät valitsimet:
- SBS_VERT, pystysuuntainen palkki
- SBS_HORZ, vaakasuuntainen palkki
Tärkeimmät sanomat kontrollilta lomakkeelle:
- SB_PAGEDOWN, vierityspalkin kuilua painetaan
- SB_PAGEUP, vierityspalkin kuilua painetaan
- SB_LINEDOWN, vierityspalkin vierityspainiketta painetaan
- SB_LINEUP, vierityspalkin vierityspainiketta painetaan
- SB_THUMBPOSITION, vierityslaatikkoa siirretään
- SB_THUMBTRACK, vierityslaatikko päästetään irti
Tärkeimmät aliohjelmajäsenet:
- SetScrollPos (), asettaa hissin aseman
- GetScrollPos (), hakee hissin aseman
- SetScrollRange (), asettaa vieritysvälin
- GetScrollRange (), hakee vieritysvälin
CEdit (muokkausruutu)
Tehtävä: Esittää tekstikentän jota voidaan myös muokata
Tärkeimmät valitsimet:
- ES_CENTER, teksti keskitetään
- ES_MULTILINE, teksti jaetaan automaattisesti usealle riville
Tärkeimmät sanomat kontrollilta lomakkeelle:
- EN_UPDATE, tekstiä on muuttunut
- EN_CHANGE, tekstiä ollaan muuttamassa
Tärkeimmät aliohjelmajäsenet:
- Undo (), käyttäjä haluaa perua muutoksen
- GetLine (), kotrollin teksti kopioidaan puskuriin
- SetWindowText (), kirjoittaa kontrolliin halutun tekstin
- GetWindowText (), hakee kontrollin tekstin
CListBox (luetteloruutu)
Tehtävä: Luetteloruutu, jossa näytetään useita tekstirivejä alekkain
Tärkeimmät valitsimet:
LBS_STANDARD, sisältää tyylit LBS_NOTIFY, LBS_SORT, WS_VSCROLL, WS_BORDER
Tärkeimmät sanomat kontrollilta lomakkeelle:
- LBN_SELCHANGE, valinta on vaihdettu
- LBN_DBLCLK, kontrollia tuplanautettiin
Tärkeimmät aliohjelmajäsenet:
- AddString (), listaan lisätään uusi rivi
- GetCurSel (), hakee valitun rivin järjestysnumeron
- GetText (), hakee halutun rivin tekstin
- DeleteString (), poistaa halutun rivin
- ResetContent (), koko lista tyhjennetään
CComboBox (yhdistelmäruutu)
Tehtävä: Edit tai static tyyppisen ja listbox typpisen kontollin yhdistelmä
Tärkeimmät valitsimet:
- CBS_DROPDOWN, kontrolliin voidaan kirjoittaa
- CBS_DROPDOWNLIST, kontrolliin ei voida kirjoittaa
Tärkeimmät sanomat kontrollilta lomakkeelle:
- CBN_SELCHANGE, valinta on vaihdettu
- CBN_DROPDOWN, avaa alasvetovalikon
Tärkeimmät aliohjelmajäsenet:
- AddString (), listaan lisätään uusi rivi
- GetCurSel (), hakee valitun rivin järjestysnumeron
- DeleteString (), poistaa halutun rivin
- GetWindowText (), hakee kontrollin tekstin
- SetWindowText (), kirjoittaa kontrolliin halutun tekstin
common controls (yleiset kontrollit)
Tehtävä: Lisäkontrolleja (internet -selaimen versiosta riippuvia).
Tärkeimmät valitsimet:
- CCS_BOTTOM, riippuu kontrollista
- CCS_TOP, riippuu kontrollista
Tärkeimmät sanomat kontrollilta lomakkeelle:
- NM_CLICK, kontrollia on painettu
- NM_DBLCLK, kontrollia on tuplanapautettu
Kopio lisenssistä (englanniksi) löytyy täältä.
Alkuperäinen (c) Petteri Hämäläinen
