Etusivu

C/C++ teoria
Ohjelmointitesti
C-kielen alkeet
C++-alkeet
C++-taulukkoja
Koodausohjeita
C++ tehtävät
C++ perusteet
C++ vaikeat
C++ syventävät
Kertaustehtäviä
Win32-teoria
Ohjelmointitesti
Ohjelmointimalli
Ikkunaluokat
Lyhyt pohja
Laajennettu pohja
Win32-tehtävät
Win32 perusteet
Win32 vaikeat
Win32 syventävät
MFC-teoria
Kontrolliluokat
MFC-luokat
Lyhyt pohja
Laajennettu pohja
MFC-tehtävät
MFC perusteet
MFC vaikeat
MFC syventävät
Java-teoria
Javan alkeet
Java pohja
Java-tehtävät
Java konsoli
Java perusteet
Java vaikeat
Java syventävät
 
Kontrolliluokat
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)comctl.gif (539 bytes)

Tehtävä: Windows 95 tyylisiä lisäkontrolleja

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

 
Sivutilan tarjoaa Tietokonepalvelu Mikrolahti.