![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как программно закрыть messagebox? [D7, Win2k]
Ярослав © (2004-05-15 13:10:00)Подскажите пожалуйста!
Style (2004-05-15 13:52:00) [1]
> Ярослав (15.05.04 13:45) [7]
FindWindow
по заголовку MessageBox или
классу #32770.
nikkie (2004-05-15 13:52:00) [2]у Рихтера есть пример TimedMsgBox. сделано через FindWindow + EndDialog.
в MSDN описан вариант TimedMessageBox с использованием PostQuitMessage - имхо гораздо элегантнее. правда в одной специфической ситуации у меня с ней проблема возникала, я даже Рихтеру письмо написал :). только он не ответил :((
супер! яндекс и гугл при поиске TimedMessageBox первыми выдают мою страничку :)). а я уж было ее стер... по такому поводу восстанавливаю...
http://schachspieler.narod.ru/PQM_Problem.html
Ярослав (2004-05-15 13:45:00) [3]А какой Wnd у messagebox?
PostMessage( Wnd: HWnd;Msg, wParam: Word; lParam: Longint):
Wnd:Окно, котоpое будет пpинимать сообщение, или $FFFF для всех пеpекpываемых или всплывающих окон.
PostQuitMessage(ExitCode: Integer);
Напpавляет сообщение wm_Quit обычно в ответ на сообщение wm_Destroy.
Игорь Шевченко (2004-05-15 13:34:00) [4]nikkie © (15.05.04 13:20)
Вообще-то я притормозил, извиняюсь.
Другое дело, что окну MessageBox лучше, наверное, посылать WM_CLOSE или WM_COMMAND с ID=IDCANCEL, если в нем такая кнопка есть.
Хорошо сделано в WinXP и выше, где есть функция MessageBoxTimeout.
Ярослав (2004-05-15 13:26:00) [5]А если messagebox’ов создано много? Как их закрывать?
nikkie (2004-05-15 13:20:00) [6]да, сорри...
nikkie (2004-05-15 13:20:00) [7]хотя если из дугого процесса надо...
Игорь Шевченко (2004-05-15 13:15:00) [8]nikkie © (15.05.04 13:14)
PostQuitMessage ?
nikkie (2004-05-15 13:14:00) [9]PostMessage(WM_QUIT)