Форум: "Потрепаться";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];
ВнизЧем отличается ShowModal и Show? Найти похожие ветки
← →
Piter © (2004-11-21 17:08) [0]Вопрос возник из-за того, что я подумал - а почему при модальной форме нельзя перевести фокус на другое окно приложения?
Было два предположения:
1) где-то с помощью функции WinApi указывается, что данное окно у приложения модальное. И сама windows не дает переключится на другое окно
2) где-то в недрах VCL обрабатывается такая ситуация, и если у приложения есть модальная форма - то обработка WM_ACTIVE и прочих сообщений для других форм не происходит.
Но вот никак не могу найти в VCL реализацию ни того, ни другого поведения.
Вероятно правильный первый вариант, потому что при EnableWindow другое (не модальное окно) может получать фокус...
← →
Anatoly Podgoretsky © (2004-11-21 17:11) [1]Вся VCL в исходных кодах, там же можно посмотреть реализацию этих двух методов.
← →
Piter © (2004-11-21 17:47) [2]Anatoly Podgoretsky © (21.11.04 17:11) [1]
Вся VCL в исходных кодах, там же можно посмотреть реализацию этих двух методов.
хм. А я думаете не знаю?
> Но вот никак не могу найти в VCL реализацию ни того,
> ни другого поведения
Очевидно, по-моему, что VCL я смотрел...
← →
Игорь Шевченко © (2004-11-21 18:03) [3]Верно первое предложение.
И при изучении VCL оно находит свое подтверждение.
Функция WinAPI называется EnableWindow
← →
Piter © (2004-11-21 18:52) [4]Нашел... как всегда был невнимателен:
function TCustomForm.ShowModal: Integer;
...
WindowList := DisableTaskWindows(0);
...
end;
function DisableTaskWindows(ActiveWindow: HWnd): Pointer;
...
EnumThreadWindows(GetCurrentThreadID, @DoDisableWindow, 0);
...
end;
Ну аDoDisableWindow
уже делает все окна недоступными, которые ему система передает (все окна процесса)
Эх, я как всегда...
← →
Piter © (2004-11-21 19:11) [5]Piter © (21.11.04 18:52) [4]
(все окна процесса)
все окна потока
← →
Anatoly Podgoretsky © (2004-11-21 19:18) [6]Piter © (21.11.04 18:52) [4]
Цените VCL как бездонный источник знаний по АПИ :-)
← →
Piter © (2004-11-21 20:04) [7]Anatoly Podgoretsky © (21.11.04 19:18) [6]
так я ценю :)
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.037 c