где все оконные процедуры зарегистрированы в Windows

#windows

#Windows

Вопрос:

Как мы можем видеть из MSDN, мы знаем, что один и тот же класс имеет ту же оконную процедуру по умолчанию, например: класс CEdit имеет оконную процедуру по умолчанию для всего класса CEdit, но если мы создадим новое окно редактирования путем реализации класса CEdit, мы можем определить нашу оконную процедуру для обработкисообщение передано из системы.И, с другой стороны, когда окно создается и назначается оконная процедура, система выделит блок памяти для сохранения некоторой информации (адрес winproc и т. Д.). Эта информация должна храниться где-то в другом месте.

ИТАК, мой вопрос: как просмотреть оконный процесс (включая процесс, определенный пользователем самостоятельно) или найти, где они размещены.

Ответ №1:

Каждый HWND ссылается на блок данных. Вызовите GetWindowLongPtr(hwnd, GWLP_WNDPROC) , чтобы получить оконный процесс для этого конкретного hwnd .