Instanță Subclassing

O cerere subclase o instanță a unei ferestre utilizând funcția SetWindowLong . Aplicarea trece pavilion GWL_WNDPROC, mâner fereastra subclasă, și adresa procedura subclasă pentru SetWindowLong. Procedura subclasă pot afla în aplicației executabil sau o bibliotecă cu legare dinamică (DLL).

SetWindowLong întoarce adresa procedura de fereastra inițială a ferestrei. Cererea trebuie să salvați adresa, folosind-o în ulterioare apelurile la funcția de CallWindowProc , transmite mesaje interceptate la regimul fereastra originală. Cererea trebuie să aibă, de asemenea, adresa de procedura fereastra original pentru a elimina subclasă din fereastra. Pentru a elimina subclasă, aplicarea necesită SetWindowLong din nou, care trece adresa procedura fereastra original cu GWL_WNDPROC de pavilion și mâner în fereastra.

Sistemul de?ine sistemul global de clase, și aspecte ale controalelor s-ar putea schimba de la o versiune a sistemului de la următorul. Dacă aplicarea trebuie subclasă o fereastră care aparține unui sistem global clasa, dezvoltatorul poate trebuie să actualizați aplicarea atunci când este lansat o nouă versiune a sistemului.

Deoarece subclassing instanță se produce după o fereastră este creat, nu puteți adăuga orice octeți suplimentare fereastra. Cererile care subclasă o fereastră ar trebui să utilizeze a ferestrei lista de proprietăți pentru a stoca toate datele necesare pentru o instanță a ferestrei subclassed. Pentru mai multe informații, consultați Fereastra Proprietăți.

Atunci când o cerere subclase subclassed o fereastră, aceasta trebuie să eliminați subclase în ordine inversă ei s-au efectuat. Dacă nu este inversată în ordinul de ridicare, poate apărea o eroare de sistem nerecuperabilă.

Index