Разница между WindowProc и CallWindowProc?

#winapi #wndproc

#winapi #wndproc

Вопрос:

В чем разница между WindowProc и CallWindowProc ?

Я могу представить, что при регистрации нового класса window я могу указать для него свой собственный WindowProc.
Это оставляет вопрос: когда и для чего я использую CallWindowProc?

Ответ №1:

Когда вы создаете подкласс окна, используя SetWindowLong/Ptr(GWL_WNDPROC) для назначения нового WindowProc() окну, замена WindowProc() используется CallWindowProc() , когда ей нужно вызвать оригинал окна WindowProc() :

Создание подкласса окна

Предпочтительный способ подкласса окна — использовать SetWindowSubClass() вместо:

Более безопасное разделение на подклассы

Ответ №2:

См. msdn. CallWindowProc используется для создания подклассов.