Интерфейс миничата замутил на основе propertisheet, приваты - доп.вкладки, т.к. изначально не известно скоко вкладок, по мере их появления, я высчитываю хендлы диалогов и edit'ов. И вроде как всё работало пока не попытался создать вкладку из потока. Каким боком из потока не хотит создавать окно со всем содержимым не пойму.., т.е. вкладку с название создаёт и всё. Посмотрите плиз, может, как обычно, я что-то пропустил...
Flasher Читаем Рихтера: "... два User объекта (окна и ловушки) принадлежат только создавшему их потоку ... если поток создает окно или устанавливает ловушку а потом завершается, операционная система автоматически уничтожает окно или удаляет ловушку ...". Твоя функция потока добавляет диалог и завершается, система видит, что поток завершил работу и удаляет диалог. Если функцию потока переписать так: Код (Text): Thread1 proc invoke AddPrivatMes,$CTA0("Nickname"),$CTA0("message") invoke Sleep, 100000 ;; 100 секунд ret Thread1 endp то, например, при помощи Microsoft Spy можно убедиться, что диалог создается. У Рихтера есть разделы которые так и называются "В каких случаях потоки создаются" и "И в каких случаях потоки не создаются". Цитата из второго: "... многопоточность следует использовать разумно. Не создавайте несколько потоков только потому, что это возможно ...".
q_q, привет, давно не было видно тебя на форуме Файл в аттаче я подчистил от всякой нечисти.., 0на самом деле после создания поток не закончивает свою работу, а идёт на recv. Тот же самый эффект получается что и когда sleep стоит, может и диалог создаётся, но вкладка не переключается.., поменял sleep на invoke MessageBox,0,0,0,0 и заработало... Это уже проблемы обработки WM_NOTIFY/TCN_SELCHANGE ?
Flasher поменял sleep на invoke MessageBox,0,0,0,0 и заработало ... Это иллюзия. Мне удается, щелкая по закладкам, открывать закладку Nickname без элементов диалога. Читаем psdk раздел Creating Windows in Threads: "... the thread must provide a message loop to process the messages in its message queue ...". Добавляя в функцию потока вызов MessageBox ты обеспечиваешь для потока цикл обработки сообщений, видимо не полноценный.