Запуск wndproc в фоновом потоке можно выполнить в Win32, но это широко считается плохой идеей.
Для этого необходимо убедиться, что ваш фоновый поток содержит цикл отправки сообщений: GetMessage / TranslateMessage / DispatchMessage.Вы должны убедиться, что дескриптор окна, который вы хотите обрабатывать сообщения в фоновом потоке, создан в фоновом потоке (CreateWindow вызывается в контексте фонового потока), а также во всех его дочерних окнах.И вы должны убедиться, что ваш фоновый поток часто вызывает свой цикл сообщений в дополнение к тому, что он еще делает (что своего рода побеждает цель использования фонового потока!)
Если ваш фоновый поток не имеет цикла сообщенийдескрипторы окон, созданные в фоновом потоке, никогда не получат никаких сообщений, поэтому ничего не произойдет.
Теперь, почему вы не должны этого делать: Windows управляется сообщениями, что означает, что они по своей природемногозадачная система диспетчеризации.Каждое приложение с графическим интерфейсом должно иметь цикл сообщений в главном потоке, чтобы что-то сделать.Этот цикл сообщений будет поддерживать практически любое количество окон, все в основном потоке.Правильно реализованный пользовательский интерфейс не будет ничего делать в главном потоке, чтобы блокировать выполнение, поэтому цикл сообщений всегда будет готов и отзывчив.
Так что, если существующий цикл сообщений в главном потоке будет обрабатывать все ваши потребности обмена сообщениями в окнебез блокировки или замораживания, почему вы хотите усложнить свою жизнь, пытаясь запустить второй цикл сообщений в фоновом потоке?Использование фонового потока не дает никаких преимуществ.