На главную

On-line справка по Win32 API

Написать письмо
БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО!
Список всех статей A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z | Скачать Вниз

Subclassed Combo Boxes



Subclassing is a procedure that allows an application to intercept and process messages sent or posted to a window. By using subclassing, an application can substitute its own processing for certain messages, while leaving most message processing to the class-defined window procedure.

When the operating system creates a window, it saves information about it in an internal data structure that includes the address of the window procedure. To subclass a window, an application calls the SetClassLong function to replace the address of that procedure with the instance address of an application-defined subclass procedure. Thereafter, all messages to the window are sent to the subclass procedure. This procedure then uses the CallWindowProc function to pass unprocessed messages to the original window procedure. For a description of the message processing performed by the COMBOBOX class window procedure, see Default Combo Box Behavior.

When the combo box is outside a dialog box, an application cannot process the TAB, ENTER, and ESCAPE keys unless it uses a subclass procedure. When a simple or drop-down combo box receives the input focus, it immediately sets the focus to its child edit control. Therefore, an application must subclass the edit control to intercept keyboard input for a simple or drop-down combo box. For an example of this, see Subclassing a Combo Box.

If a subclass procedure processes the WM_PAINT message, it must use the BeginPaint function to prepare for painting. Before calling the EndPaint function, it passes the device-context (DC) handle as the wParam parameter for the window procedure. If EndPaint is called first, the class window procedure does no painting because EndPaint validates the entire window.
A technique related to subclassing is superclassing. A superclass resembles any other class except that its window procedure does not call DefWindowProc to handle unprocessed messages. Instead, it passes unprocessed messages to the window procedure for the parent window class. Follow the guidelines in Window Procedures to avoid problems that can occur with subclassing and superclassing.


Пригласи друзей и счет твоего мобильника всегда будет положительным!
Предыдущая статья
 
Сайт Народ.Ру Интернет
Следующая статья
Пригласи друзей и счет твоего мобильника всегда будет положительным!

Subclassed Combo Боксирует



Subclassing - процедура, которая позволяет приложение, чтобы прерывать и обрабатывать сообщения посланные или объявленные в окно. Используя subclassing, приложение может заменить свои собственные наверняка сообщения обработки, при отъезде наиболее обработка сообщения в процедуру окна определенного класса.

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

Когда блок combo - за пределами диалогового блока, приложение не может обработать ТАБ., ВВЕДИТЕ, и ИЗБЕГАЮТ клавиш если это не использует процедуру подкласса. Когда простая или капля-вниз combo блок приемников входной фокус, это немедленно устанавливает фокус на свое управление редактирования ребенка. Следовательно, приложение должно подкласс управление редактирования, чтобы прерывать ввод данных с клавиатуры для простой или капли-вниз combo блок. Для примера этого, смотри Subclassing Блок Combo.

Если процедура подкласса обрабатывает сообщение WM_PAINT, она должна использовать функцию BeginPaint, чтобы готовиться к живописи. Перед разговором функции EndPaint, это передает устройство-контекст (DC) ручку как параметр wParam для процедуры окна. Если EndPaint вызван первым, процедура окна класса не делает никакой живописью поскольку EndPaint подтверждает целое окно.
Техника имела отношение к subclassing superclassing. superclass Имеет сходство с любым другим классом за исключением того эта процедура окна не вызывает DefWindowProc, чтобы оперировать unprocessed сообщения. Взамен, это передает unprocessed сообщения в процедуру окна для родительского класса окна. Последуйте за руководящими принципами в Процедурах Окна, чтобы избегать проблем, которые могут произойти с subclassing и superclassing.


Вверх Version 1.3, Oct 26 2010 © 2007, 2010, mrhx Вверх
 mrhx software  Русский перевод OpenGL  Русский перевод Win32 API
 
Используются технологии uCoz