Не принимаются сообщения из PostMessage
Господа, имеет место быть такая ситуация: в приложении имеются несколько потоков, которым периодически необходимо обновлять главное окошко. Для этого потоки отправляют сообщения через PostMessage(...) Выглядит это в простейшем случае вот так:
unsigned __stdcall Thread1(void* pThreadInfo)
{
ThreadInfo* ThreadData = (ThreadInfo*)pThreadInfo;
unsigned long hWnd = ThreadData->hWnd;
SetThreadPriority(ThreadData->ThreadID, ThreadData->Priority);
while(1)
{
// работа потока
PostThreadMessage(hWnd, WM_USER+1, Data1, Data2);
}
return 0;
}
А в цикл обработки сообщений подсовывается такой кусочек:
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(WM_USER+0, TMessage, onData1);
MESSAGE_HANDLER(WM_USER+1, TMessage, onData2);
END_MESSAGE_MAP(TForm);
Программа запускается, потоки периодически отправляют сообщения, но ни одно сообщение не принимается. Кто знает, что за фигня? Как еще поток может передать данные форме и заставить ее отреагировать на них?
Проект пишется в Borland С++ Builder. Просьба не предлагать забить на все и переписать на WinAPI - лучше посоветуйте, плиз, как избавиться от этого безобразия... Заранее спасибо за советы )
