Элемент поля со списком

Создание подклассов — это процедура, которая позволяет приложение для процесса и перехвата сообщений отправленные или размещены в окно. С помощью подклассы, приложение может заменить свой собственный обработки для некоторых сообщений, при этом большинство обработки процедуре определенный класс окна сообщений.

Когда операционная система создает окно, оно сохраняет информацию об этом в на внутреннюю структуру данных, включающий адрес процедуры окна. Подкласс окна приложение вызывает функцию SetClassLong для замены адреса этой процедуры с адресом экземпляра определяемого приложением подкласс процедуры. После этого все сообщения в окно отправляются к процедуре подкласса. Эта процедура затем использует функцию CallWindowProc для передачи необработанных сообщений в исходную процедуру окна. Описание обработки сообщений, выполняемая процедура окна класса COMBOBOX смотрите По умолчанию поведение поля со списком.

Когда поле со списком находится вне диалоговым окном, приложение не может обработать вкладки, введите и избежать ключей, если только он не использует подкласс процедуру. Когда простой или раскрывающемся списком получает фокус ввода, он сразу же устанавливает фокус для редактирования его дочернего элемента управления. Таким образом приложение должно подкласса элемента управления редактирования перехват ввода с клавиатуры для простой или раскрывающемся списком. В качестве примера содержатся в разделе Создание подклассов в Combo Box.

Если подкласс процедура обрабатывает сообщение WM_PAINT , он должен использовать обработке функции для подготовки к покраске. Перед вызовом EndPaint функция, он передает дескриптор контекста устройства (DC) как параметр wParam для процедуры окна. Если EndPaint вызывается первой, процедура окна класса не делает никаких живопись, потому что EndPaint проверяет все окно.

Техника, относящиеся к подклассы — суперкласс. Суперкласс напоминает любой другой класс за исключением того, что его процедуре окна не вызывает DefWindowProc для обработки необработанных сообщений. Вместо этого он передает необработанные сообщения в процедуру окна для родительского класса окна. Следуйте рекомендациям в Окно процедуры , чтобы избежать проблем, которые могут произойти с подклассы и суперкласс.

Index