Fereastra procedură Subclassing

Atunci când o cerere creează o fereastră, sistemul alocă un bloc de memorie pentru a stoca informa?ii specifice pentru fereastra, inclusiv adresa procedura fereastra care procesează mesajele pentru fereastra. Atunci când sistemul trebuie să treacă un mesaj în fereastra, acesta caută informații fereastra-specifice pentru adresa de procedura fereastra și trece mesajul cu această procedură.

Subclassing este o tehnica care permite o cerere pentru a intercepta și procesul de mesaje trimise sau înregistrate într-o fereastră special înainte de fereastra are o șansă de a prelucra. Subclassing o fereastră, cererea poate mări, modifica sau monitorizează comportamentul fereastra. Cererea poate subclasă o fereastră din un sistem global clasa, cum ar fi un control de editare sau o casetă listă. De exemplu, o cerere ar putea subclasă un control de editare pentru a împiedica acceptarea anumitor caractere de control. Cu toate acestea, nu subclasă, o fereastră sau clasa care aparține o altă aplicație. Toate subclassing trebuie efectuată în cadrul aceluia?i proces.

O cerere subclase o fereastră prin înlocuirea adresa procedurii a ferestrei original fereastra cu adresa de o nouă procedură de fereastră, numit subclasă procedura. După aceea, procedura subclasă primește orice mesaj trimis sau Postat la fereastra.

Procedura subclasă poate dura trei acțiuni la primirea unui mesaj: poate trece mesajul original fereastra procedurii, modifica mesajul și trece la regimul fereastra original, sau procesul de mesaj și nu trece la regimul fereastra inițială. Dacă procedura subclasă procesează un mesaj, se poate face acest lucru înainte, după, sau ambele înainte și după ce trece mesajul original fereastra procedurii.

Sistemul oferă două tipuri de subclassing: instanță și global. În instanță subclassing, cererea înlocuiește adresa fereastra procedură o singură instanță a ferestrei. Cererea trebuie să utilizați instanță subclassing pentru subclasa o fereastră existente. În global subclassing, cererea înlocuiește adresa procedura fereastra în structura WNDCLASS o clasă de Ferestre. Toate ferestrele ulterioare creat cu clasa au adresa procedura subclasă, dar windows existente de clasă nu sunt afectate.

Index