На главную

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 | Скачать Вниз

Subclassing and Automatic Message Translation



Subclassing is a technique that allows an application to intercept and process messages sent or posted to a particular window before the window has a chance to process them. The system automatically translates messages into ANSI or Unicode form, depending on the form of the function that subclassed the window procedure.

The following call to the SetWindowLongA function subclasses the current window procedure associated with the window identified by the hwnd parameter. The new window procedure, NewWndProc, will receive messages with text in ANSI format.

OldWndProc = (WNDPROC) SetWindowLongA(hwnd,
GWL_WNDPROC, (LONG)NewWndProc);


When NewWndProc has finished processing a message, it uses the CallWindowProc function as follows to pass the message to OldWndProc.

CallWindowProc(OldWndProc, hwnd, uMessage, wParam, lParam);


If OldWndProc was created with a class style of UNICODE, messages will be translated from the ANSI form received by NewWndProc into Unicode.
Similarly, a call to the SetWindowLongW function would subclass the current window procedure with a window procedure that expects Unicode text messages. Message translation, if necessary, is performed during the processing of the CallWindowProc function.
For more information about subclassing, see Window Procedures.


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

Subclassing и Автоматический Перевод Сообщения



Subclassing - техника, которая позволяет приложение, чтобы прерывать и обрабатывать сообщения посланные или объявленные в конкретное окно прежде, чем окно имеет шанс, чтобы обрабатывать их. Система автоматически переводится сообщения в ANSI или форма Уникода, в зависимости от формы функции, что subclassed процедура окна.

Следующее вызова в функциональные подклассы SetWindowLongA текущая процедура окна связывалась окном идентифицированным параметром hwnd. Новая процедура окна, NewWndProc, получит сообщения с текстом в формате ANSI.

OldWndProc = (WNDPROC) SetWindowLongA(hwnd, GWL_WNDPROC, (LONG)NewWndProc);


Когда NewWndProc завершил обрабатывая сообщение, это использует функцию CallWindowProc следующим образом, чтобы передавать сообщение на OldWndProc.

CallWindowProc(OldWndProc, hwnd, uMessage, wParam, lParam);


Если OldWndProc был создан стилем класса УНИКОДА, сообщения будут переведены из формы ANSI полученной NewWndProc в Уникод.
Аналогично, вызов в функцию SetWindowLongW был бы подклассом текущая процедура окна с процедурой окна, которая ожидает текстовые сообщения Уникода. Перевод Сообщения, если необходимо, выполнен в течение обработки функции CallWindowProc.
Более подробно о subclassing, смотри Процедуры Окна.


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