![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
MsgWaitForMultipleObjects [D5]
Unknown Mystic © (2004-08-02 12:34:00)Подскажите, пожалуйста, как заставить программу перерисовываться, при использовании
Result := MsgWaitForMultipleObjects(1, hProcess, false, INFINITE, QS_PAINT);
Я так понимаю, что вызов MsgWaitForMultipleObjects надо поместить в цикл и в зависимости от возвращаемого значения либо выходить из него (Result = WAIT_ABANDONED_0) , либо... А что собственно делать, когда Result = WAIT_OBJECT_0 ?
Если можно, напишите этот цикл. Спасибо.
Unknown Mystic (2004-08-02 13:36:00) [1]Большое спасибо!
Digitman (2004-08-02 13:34:00) [2]
> Unknown Mystic © (02.08.04 13:24) [6]
while True do
case MsgWaitForMultipleObjects(1, hProcess, false, INFINITE, QS_PAINT) of
WAIT_OBJECT_0: Break;
WAIT_OBJECT_0 + 1:
while Peekmessage(Msg, 0, 0, 0, PM_REMOVE) do
begin
TranslateMessage(Msg);
Dispatchmessage(Msg);
end;
end;
WAIT_ABANDONED - это, в первую очередь, для работы с мьютексами и семафорами, тебя это в дан.случае не касается
Unknown Mystic (2004-08-02 13:24:00) [3]Т.е.
WAIT_OBJECT_0 - завершение процесса (hProcess)
WAIT_OBJECT_0 + 1 - QS_PAINT
так? А что тогда такое WAIT_ABANDONED_0 ?
Игорь Шевченко (2004-08-02 13:18:00) [4]
> Кстати какое значение будет у Result, при возникновении
> QS_PAINT?
WAIT_OBJECT_0 + 1 в данном случае
Unknown Mystic (2004-08-02 12:49:00) [5]Спасибо. Попробую. Кстати какое значение будет у Result, при возникновении QS_PAINT?
Игорь Шевченко (2004-08-02 12:42:00) [6]
> А что делать когда происходит QS_PAINT?
PeekMessage + DispatchMessage
Unknown Mystic (2004-08-02 12:41:00) [7]Да? Значит я не так понял... А что делать когда происходит QS_PAINT?
Polevi (2004-08-02 12:35:00) [8]Result = WAIT_OBJECT_0 означает что засигналил hProcess, то есть процесс завершился