[Форум] [Помощь] [Поиск] [Выйти] |
Добро пожаловать, User |
|
|
| ||
Подскажите для Visual C++ или Visual C# аналог билдеровской функции ProcessMessages() |
| ||
А что она делает? |
| ||
отдаёт управление наружу и ставит текущий незаверщённый процесс в конец очереди обработки (типа того). |
| ||
procedure TApplication.ProcessMessages; var Msg: TMsg; begin while ProcessMessage(Msg) do {loop}; end; function TApplication.ProcessMessage(var Msg: TMsg): Boolean; var Handled: Boolean; begin Result := False; if PeekMessage(Msg, 0, 0, 0, PM_REMOVE) then begin Result := True; if Msg.Message <> WM_QUIT then begin Handled := False; if Assigned(FOnMessage) then FOnMessage(Msg, Handled); if not IsHintMsg(Msg) and not Handled and not IsMDIMsg(Msg) and not IsKeyMsg(Msg) and not IsDlgMsg(Msg) then begin TranslateMessage(Msg); DispatchMessage(Msg); end; end else FTerminate := True; end; end; Если надо чтоб просто приложение не висло используй Sleep и SleepEx , а вообще достаточно использовать тока TranslateMessage(Msg) и DispatchMessage(Msg). |
| ||
ДЛЯ VISUAL C++ ИЛИ С#, а не Delphi |
| ||
:) А какая разница на каком языке функции WinApi вызывать? Или тебе просто код не понятен? тогда повторысь для реализации ProcessMessages достаточно 2-х функций WinApi TranslateMessage и DispatchMessage :) |
| ||
Application.DoEvents Method // C# public static void DoEvents(); ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.1033/cpref/html/frlrfsystemwindowsformsapplicationclassdoeventstopic.htm |