Criando o Windows em Threads
Qualquer thread pode criar uma janela. O thread que cria a janela possui a janela e sua fila de mensagens associada. Portanto, o thread deve fornecer um loop de mensagem para processar as mensagens em sua fila de mensagens. Além disso, você deve usar MsgWaitForMultipleObjects ou MsgWaitForMultipleObjectsEx nesse thread, em vez das outras funções de espera, para que ele possa processar mensagens. Caso contrário, o sistema poderá ficar em deadlock quando o thread for enviado uma mensagem enquanto ele estiver aguardando.
A função AttachThreadInput pode ser usada para permitir que um conjunto de threads compartilhe o mesmo estado de entrada. Ao compartilhar o estado de entrada, os threads compartilham seu conceito da janela ativa. Ao fazer isso, um thread sempre pode ativar a janela de outro thread. Essa função também é útil para compartilhar o estado de foco, o estado da captura do mouse, o estado do teclado e o estado da ordem Z da janela entre janelas criadas por threads diferentes cujo estado de entrada é compartilhado.
Para obter informações sobre como criar janelas, consulte Classes do Windows.