Создание окон в потоках
Любой поток может создать окно. Поток, который создает окно, владеет окном и связанной с ним очередью сообщений. Поэтому поток должен обеспечить цикл сообщений, чтобы обрабатывать сообщения в этой очереди. Кроме того, в этом потоке Вы должны использовать функции
MsgWaitForMultipleObjects или MsgWaitForMultipleObjectsEx, а не другие функции ожидания (wait functions), таким образом, чтобы они могли обрабатывать сообщения. Иначе, система может стать заблокированной, когда потоку отправляется сообщение, в то время когда он находится в ждущем режиме.Функция
AttachThreadInput может быть использована, чтобы дать возможность пакету потоков совместно использовать то же самое состояние ввода информации. Совместно используя состояние ввода, потоки совместно используют свою концепцию активного окна. Делая это, один поток может всегда активизировать окно другого потока. Эта функция также полезна и для совместного использования состояния фокуса, состояния захвата мыши, состояния клавиатуры и состояния окна в Z-последовательности среди окон, созданных различными потоками, состояние ввода данных которыми используется совместно.