Re[3]: Ожидание создания диалога
От: Sergey Россия  
Дата: 11.01.02 08:27
Оценка:
Здравствуйте niksap, Вы писали:

N>Здравствуйте Sergey, Вы писали:


S>>Здравствуйте niksap, Вы писали:


N>>>Проблема такая:

N>>>ловлю диалог по WH_CBT, HCBT_ACTIVATE.
N>>>как поймал HCBT_ACTIVATE сразу лезу по его детишкам-окнам.
N>>>но они в это время оказываются еще не досозданы. (это я вижу из SPY++)

N>>>подскажите, как дождаться конца достройки?

N>>>не таймаут же какой-нить ставить?!
N>>>ставить еще один хук по WM_INITDIALOG уже на сам дилог не хочется.

N>>>WaitForInputIdle не срабатывает, т.к. работает с процессом, а он "усегда готов!"

S>> А WH_FOREGROUNDIDLE не помогает?

N>это не одно и тоже? как я понял WaitForInputIdle ((HANDLE)hProcess, INFINITE) срабатывает, когда hProcess как раз становиться в Idle т.е. ждет ввода. WH_FOREGROUNDIDLE будет привязян к потоку/процессу, а мне, скорее, надо к окну.

N>Или я чего не понимаю?
Разница в том, что WaitForInputIdle — для процесса (его primary потока), а WH_FOREGROUNDIDLE — для любого потока. Если диалог создается не в основном потоке, может помочь.
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.