MFC kontrollit

Mureakuha

Loikkaa: valikkoon, hakuun

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)

Kuva:Win32_nappiluokka.PNG

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)

Kuva:Win32_staticluokka.PNG

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)

Kuva:Win32_vieritysluokka.PNG

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)

Kuva:Win32_muokkausluokka.PNG

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)

Kuva:Win32_listaluokka.PNG

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)

Kuva:Win32_comboluokka.PNG

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
Tämän dokumentin kopiointi, levittäminen sekä muokkaaminen on sallittua GNU Free Documentation Licensen version 1.2 tai uudemman Free Software Foundationin julkaiseman version mukaisesti, ilman muuttumattomuuslauseketta tai kansitekstejä. Tätä koskee vastuuvapaus.
Kopio lisenssistä (englanniksi) löytyy täältä.


Alkuperäinen (c) Petteri Hämäläinen

Henkilökohtaiset työkalut