Форум: "Основная";
Текущий архив: 2002.05.20;
Скачать: [xml.tar.bz2];
ВнизИ снова MDI интерфейс Найти похожие ветки
← →
RaZEr (2002-05-08 07:40) [0]Ситуация следующая :
- Есть много MDI Child форм
- Все они с windowstyle wsMaximized
Нужно чтобы по нажатию на определенную кнопку становилась активной (поверх всех) заданная форма .
PS: Я пробовал и Update и Show и традиционный BringToTop, но во всех случаях формы теряли свой wsMaximized :( ... из-за чего приходилось разворачивать формы (В XP это мерцание, а в 98 - вообще лучше не вспоминать что)
← →
Alx2 (2002-05-08 08:02) [1]Попробуй посылать нужному MDIChild сообщение WM_MDIACTIVATE
← →
Alx2 (2002-05-08 08:40) [2]Нет, не катит... Тоже все перерисовывается :(
← →
Alx2 (2002-05-08 08:56) [3]А вот это сработало!
SetWindowPos({Хэндл нужного MDIchildа},HWND_TOP,0,0,0,0,SWP_NOMOVE or SWP_NOSIZE or SWP_NOCOPYBITS);
← →
Sasha M. (2002-05-08 10:26) [4]А этот вариант, может будет проще?
begin
fmForm.WindowState:=wsNormal;
BringWindowToTop(fmFORM.Handle);
end
← →
Lmatveev (2002-05-08 12:05) [5]Я использую две функции подряд:
SetForegroundWindow(Form.Handle);
BringWindowToTop(Form.Handle);
← →
RaZEr (2002-05-08 17:35) [6]Блин, Багланд :) Еслиб вы знали в чем было дело :) MyForm.BorderIcons :) . Иными словами нельзя отключать некоторые из них (systemmenu и maximize) . Маразм ...
Если не отключать перечисленные BorderIcons, то работает обычный BringToFront . Напрашивается вопрос : как отключить BorderIcons не отключая их ?! Т.е. чтобы они были, но их небыло видно или они не работали .
Да и вообще пре переключении всеми перечисленными методами заметно мерцание :( а я уверен что можно зделать и без него . Плюс ко всему первое отображение MDI Child формы происходит с ее заметным развертыванием .
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.05.20;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.006 c