Alosztályozás

Az alosztályozás a Windows által alapértelmezés szerint hozzárendelt ablakeljárás  felülbírálásának folyamata

A technológia célja

Ezt a technológiát akkor használják, ha az ablakot valamilyen speciális reakcióval kell felruházni egy Windows-üzenetre. Az alosztályozás segítségével megszervezheti a bemeneti vezérlést, blokkolva az ablak bezárását. Általában itt az a legfontosabb, hogy szükség esetén a programozó teljes mértékben irányíthassa az ablak viselkedését.

Az alosztályozás előnyei

A Windows meglehetősen gazdag vezérlőválasztékkal rendelkezik, de előfordulhat, hogy olyan helyzetbe kerül, amikor testre kell szabnia egy vezérlő viselkedését. És van itt egy bonyodalom: a Windows által egy vezérlőhöz rendelt eljárás önmagában nem változtatható meg. Két módja van:

Az első megközelítés hátránya, hogy valójában a programozó kénytelen újra "feltalálni a kereket". Az alosztályozás előnye azonban, hogy lehetővé teszi a programozó számára, hogy csak azokra a Windows-üzenetekre összpontosítson, amelyekre valóban szüksége van, a többit pedig átadja a szokásos ablak eljárásnak.

Hogyan működik az alosztályozás

Működési elve meglehetősen egyszerű: ablak létrehozásakor a Windows a WNDCLASSEX ablakosztály lpfnWndProc mezőjébe írja a kezelő eljárás [ 1] címét . A Windows biztosítja a programozó számára a SetWindowLong függvényt , amely megváltoztathatja az osztály különböző mezőit, beleértve a kezelő címét is. Ugyanakkor a szabványos ablak eljárás nem tűnik el sehol, a címét a defwindowproc mező tartalmazza , és ha ablakos eljárásunk olyan ablaküzenetet kap, amelynek feldolgozása nem igényel programozói beavatkozást, akkor az ablak eljárásunk továbbítja a szabványos ablakeljárás.

Alosztályozási korlátozások

Problémák merülhetnek fel a technológia használata során, ha az alkalmazás VCL , OWL vagy MFC használatával van programozva . Ennek oka a Windows-üzenetek kezelési sorrendje ezekben a könyvtárakban [2] .

Lásd még

Jegyzetek

  1. Vegye figyelembe, hogy az ablakosztály NEM OOP értelemben vett osztály.
  2. Üzenetmódszerek vagy Üzenetkezelés osztályok szerint . Hozzáférés dátuma: 2010. július 27. Az eredetiből archiválva : 2010. december 15.

Linkek