Alaluokka

Alaluokka on prosessi ohitetaan Windowsin oletusarvoisesti määrittämä ikkunatoiminto  .

Tekniikan tarkoitus

Tätä tekniikkaa käytetään, jos sen on annettava ikkunalle tietty reaktio Windows-viestiin. Alaluokituksen avulla voit järjestää syötteiden ohjauksen, joka estää ikkunan sulkeutumisen. Yleisesti ottaen tärkeintä tässä on, että ohjelmoijalla on tarvittaessa täysi määräysvalta ikkunan käyttäytymisestä.

Alaluokituksen edut

Windowsissa on melko rikas valikoima säätimiä, mutta saatat joutua tilanteeseen, jossa sinun on mukautettava säätimen toimintaa. Ja tässä on monimutkaisuus: Windowsin ohjausobjektille määräämää menettelyä ei voida muuttaa sellaisenaan. On kaksi tapaa:

Ensimmäisen lähestymistavan haitat ovat, että ohjelmoijan on itse asiassa pakko "keksiä pyörä uudelleen". Alaluokituksen etuna on kuitenkin se, että sen avulla ohjelmoija voi keskittyä vain niihin Windows-viesteihin, joita hän todella tarvitsee, ja siirtää loput tavalliseen ikkunamenettelyyn.

Kuinka alaluokka toimii

Sen toimintaperiaate on melko yksinkertainen: ikkunaa luodessaan Windows kirjoittaa käsittelijän proseduurin [1] osoitteen WNDCLASSEX - ikkunaluokan lpfnWndProc -kenttään . Windows tarjoaa ohjelmoijalle SetWindowLong -funktion , joka voi muuttaa luokan eri kenttiä, mukaan lukien käsittelijän osoitteen. Samalla tavallinen ikkunaproseduuri ei katoa minnekään, sen osoite on defwindowproc- kentässä ja jos ikkunaproseduurimme saa ikkunasanoman, joka ei vaadi ohjelmoijan väliintuloa sen käsittelyyn, ikkunaproseduurimme välittää sen tavallinen ikkunamenettely.

Alaluokkarajoitukset

Tämän tekniikan käytössä ilmenee ongelmia, jos sovellus ohjelmoidaan VCL :llä , OWL :llä tai MFC :llä . Tämä johtuu järjestyksestä, jossa Windows-viestejä käsitellään näissä kirjastoissa [2] .

Katso myös

Muistiinpanot

  1. Huomaa, että ikkunaluokka EI ole luokka OOP:n merkityksessä.
  2. Viestimenetelmät tai viestien käsittely luokittain . Käyttöpäivä: 27. heinäkuuta 2010. Arkistoitu alkuperäisestä 15. joulukuuta 2010.

Linkit