![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Окно в потоке [D6, Win95/98, NT4]
skywalker © (2002-02-27 11:50:00)Кто знает, есть ли у потоков своя оконная функция? Если есть, то как в нее посылать события и как читать? Если нет - то что за безобразие..............
Юрий Зотов (2002-02-27 15:28:00) [1]> Создавать собственную оконную функцию
Да, причем для каждого окна, создаваемого в том же потоке
> или просто цикл
И цикл тоже. Иначе как же сообщения будут выбираться из очереди?
Digitman (2002-02-27 12:53:00) [2]>skywalker
Конечно, могут !
На то есть API-ф-ции диспетчера очередей Windows-сообщений.
см. GetMessage(), PeekMessage(), WaitMessage(), MsgWaitforMultipleObjects() и некоторые другие.
skywalker (2002-02-27 12:49:00) [3]Это что же, сообщение можно послать всему, у чего есть хэндл? А обрабатывать их тогда как? Создавать собственную оконную функцию (или просто цикл GetMessage->DispatchMessage)?
skywalker (2002-02-27 12:46:00) [4]2 Digitman
а разве могут сообщения обрабатываться не в окне, и как они тогда обрабатываются эти очереди?
Юрий Зотов (2002-02-27 12:30:00) [5]> то что за безобразие
А почему безобразие? Разве поток обязан иметь окна и, тем более, готовые оконные функции? Если надо - создавайте сами, если нет - так нет. Все нормально.
Digitman (2002-02-27 12:09:00) [6]Нет, у потоков нет "оконной функции".
У потоков лишь могут существовать очереди сообщений, адресуемых им другими потоками процесса (см.PostThreadMessage). Кр. того, любой поток может создать окно, оконная ф-ция которого будет вызываться в нем же (в этом же потоке) (см.CreateWindow/CreateWindowEx)
[NIKEL] (2002-02-27 12:03:00) [7]у потока есть потоковая функция, но поток это не окно ! что ты будешь посылать потоку?
у потока есть handle его возврвщает функция CreateThread