Форум: "WinAPI";
Текущий архив: 2004.09.19;
Скачать: [xml.tar.bz2];
ВнизMsgWaitForMultipleObjects Найти похожие ветки
← →
Unknown Mystic © (2004-08-02 12:34) [0]Подскажите, пожалуйста, как заставить программу перерисовываться, при использовании
Result := MsgWaitForMultipleObjects(1, hProcess, false, INFINITE, QS_PAINT);
Я так понимаю, что вызов MsgWaitForMultipleObjects надо поместить в цикл и в зависимости от возвращаемого значения либо выходить из него (Result = WAIT_ABANDONED_0) , либо... А что собственно делать, когда Result = WAIT_OBJECT_0 ?
Если можно, напишите этот цикл. Спасибо.
← →
Polevi © (2004-08-02 12:35) [1]Result = WAIT_OBJECT_0 означает что засигналил hProcess, то есть процесс завершился
← →
Unknown Mystic © (2004-08-02 12:41) [2]Да? Значит я не так понял... А что делать когда происходит QS_PAINT?
← →
Игорь Шевченко © (2004-08-02 12:42) [3]
> А что делать когда происходит QS_PAINT?
PeekMessage + DispatchMessage
← →
Unknown Mystic © (2004-08-02 12:49) [4]Спасибо. Попробую. Кстати какое значение будет у Result, при возникновении QS_PAINT?
← →
Игорь Шевченко © (2004-08-02 13:18) [5]
> Кстати какое значение будет у Result, при возникновении
> QS_PAINT?
WAIT_OBJECT_0 + 1 в данном случае
← →
Unknown Mystic © (2004-08-02 13:24) [6]Т.е.
WAIT_OBJECT_0 - завершение процесса (hProcess)
WAIT_OBJECT_0 + 1 - QS_PAINT
так? А что тогда такое WAIT_ABANDONED_0 ?
← →
Digitman © (2004-08-02 13:34) [7]
> 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:36) [8]Большое спасибо!
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.09.19;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.04 c