Subclassed поля зі списком

Subclassing — процес, який дозволяє додаток до перехоплення та процес повідомлення, надіслані або Опубліковано в вікно. За допомогою subclassing, додаток може замінити свої власні обробки для певних повідомлень, залишаючи більшість повідомлення обробки до певного класу вікна процедури.

Коли операційна система створює вікно, він зберігає інформацію про нього у внутрішні дані структури, що містить адресу вікно процедури. Підкласу вікно програма дзвінків функцію SetClassLong , щоб замінити зразок адреси визначений у застосунку підкласу процедури адресу цю процедуру. Після цього всіх повідомлень до вікна надсилаються до підкласу процедури. Ця процедура використовується функція CallWindowProc передати необробленої повідомлень до початкового вікна процедури. Для опису обробки повідомлення, у виконанні COMBOBOX клас вікна процедури зверніться За замовчуванням поведінка поля зі списком.

Коли поля зі списком за межами діалогове вікно, додаток не може обробити вкладці, введіть і уникнути ключі, якщо він використовує підкласу процедура. Коли простий або розкривного списком отримує фокус вводу, негайно встановлює фокус її дитина редагування контролю. Таким чином, програма повинна підкласу редагувати елемент керування для перехоплення введення клавіатури для простих або розкривного списком. Наприклад можна знайти Subclassing поля зі списком.

Якщо процедура підкласу процесів у WM_PAINT повідомлення, його слід використовувати в BeginPaint функцією для підготовки до живопису. Перш ніж телефонувати на EndPaint функцію, вона проходить дескриптор контексту пристрою (DC) як параметр wParam для вікна процедури. Якщо EndPaint називається по-перше, клас вікна процедура не немає живопис, тому що EndPaint підтверджує вікно повністю.

Техніка, пов'язаних з subclassing є superclassing. Суперклас нагадує будь-якого іншого класу, крім того, що її вікно не виклик процедур DefWindowProc до ручкою необробленої повідомлень. Замість цього, вона проходить необробленої повідомлень до вікна процедури для батьківського класу вікна. Дотримуйтесь інструкцій Процедури вікна , щоб уникнути проблем, які можуть виникнути з subclassing і superclassing.

Index