Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Показ и скрытие дочерних MDI-окон

Delphi , Программа и Интерфейс , MDI приложения

Показ и скрытие дочерних MDI-окон

Автор: Neil

...да, я понял: необходим гарантированный показ или скрытие MDI-окна. Гарантированно скрыть можно вызовом ShowWindow(theHandle, SW_HIDE), но в этом случае при показе *НЕ* используется ShowWindow. Вместо это сделайте так:


SetWindowPos(theHandle, HWND_TOP, 0, 0, 0, 0, SWP_NOMOVE OR
SWP_NOSIZE OR SWP_SHOWWINDOW);

Далее я обнаружил, что дочерние окна не скрывались/показывались, *ЕСЛИ* для осуществления этих функций использовались оконные компоненты (например, кнопки). Для решения проблемы добавьте следующую строку после вызова SetWindowPos:


WinProcs.SetFocus(TheHandle);

*НЕ* используйте метод SetFocus; SetFocus здесь - Windows API функция.

Дополнение

По моему,все-таки, вызов ShowWindow(theHandle, SW_HIDE)проще, короче и, по крайней мере, в Delphi5 нормально работает с оконными компонентами.


procedure TMainForm.Button1Click(Sender: TObject);
begin
  //кнопка для показа/скрытия дочернего MDI-окна
  If ShowWindow(form1MDI.Handle, SW_HIDE)=False then
    ShowWindow(form1MDI.Handle, SW_SHOW);
end;

С уважением Михаил Шпанер

В статье описывается способ гарантированного показа или скрытия дочерних окон MDI-окна, включая использование функции SetWindowPos и вызова метода SetFocus для решения проблемы с оконными компонентами.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: MDI приложения ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 12:08:03/0.0047199726104736/1