Зразок Subclassing

Застосування підкласи на зразок вікна за допомогою SetWindowLong функції. Застосування проходить GWL_WNDPROC прапор, ручка вікна до підкласу і адреса процедура підкласу SetWindowLong. Процедура підкласу можуть проживати в бібліотеки динамічного компонування (DLL) або виконувані програми.

SetWindowLong повертає адресу у вікні вихідного вікно процедури. Застосування необхідно зберегти адресу, його використання в наступні дзвінки на функцію CallWindowProc передати перехопили повідомлень до початкового вікна процедури. Програма також повинен мати оригінальний адреси процедури вікно видалити до підкласу з вікна. Щоб видалити до підкласу, програма викликає SetWindowLong знову, проходження адресу початкового вікна процедури з GWL_WNDPROC прапор і ручка вікна.

Система має систему глобального класи, і параметри елементів керування, можуть змінюватися з однієї версії системи до наступного. Якщо програма має підкласу вікна, що належить до класу глобальної системи, розробник може знадобитися оновлення програми, коли випустив нову версію системи.

Тому що екземпляр subclassing відбувається після створення вікна, не можна додавати будь-яких додаткових байтів до вікна. Застосунки що підкласу вікно слід використовувати у вікні Властивості список зберігати будь-які дані, необхідні для прикладу subclassed вікна. Докладніше перегляньте статтю Вікно властивостей.

Коли застосування-підкласи subclassed вікна, його слід видалити з підкласи у зворотному порядку, вони були виконані. Якщо видалення замовлення не зупинити, може виникнути системи невиправна помилка.

Index