Global Subclassing

La nivel global subclasă o clasă de Ferestre, cererea trebuie să aibă un mâner într-o fereastră de clasă. Cererea trebuie, de asemenea, mâner pentru a elimina subclasă. Pentru a obține mâner, o cerere de obicei creează o fereastră ascunse de clasă pentru a fi subclassed. După ob?inerea mâner, aplicarea necesită funcția SetClassLong , specificarea mâner, pavilionul GCL_WNDPROC și adresa procedura subclasă. SetClassLong întoarce adresa original fereastra procedura pentru clasa.

Original adresa procedura fereastra este folosit în global subclassing în același mod este utilizat în instanță subclassing. Procedura subclasă trece mesaje original procedura fereastra prin apelarea CallWindowProc. Aplicarea elimină subclasă din clasa fereastra de asteptare SetClassLong din nou, care precizează adresa de original fereastra, pavilionul GCL_WNDPROC, ?i ghidajul într-o fereastră de clasa fiind subclassed. Cererea că la nivel global subclase o clasă de control trebuie să eliminați subclasă atunci când cererea se termină; în caz contrar, poate apărea o eroare de sistem nerecuperabilă.

Subclassing globală a acelora?i limitări ca instanță subclassing, plus unele restricții suplimentare. Cererea nu trebuie să utilizați octeți suplimentare pentru clasa sau instanță fereastra fără să știe exact cum original procedura fereastra le utilizează. În cazul în care cererea trebuie să asocieze date cu o fereastră, aceasta ar trebui să utilizați fereastra Proprietăți.

Index