Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.06.17;
Скачать: CL | DM;

Вниз

Вопрос по MDI   Найти похожие ветки 

 
Korona ©   (2002-06-03 22:42) [0]

Спрашивал на днях: "Как можно в развернутой MDIChild убрать все кнопки кроме close (как в Word XP)?". Song посоветовал через DeleteMenu.
Пробовал:
SysMenu=GetSystemMenu(Child,Handle,FALSE);
DeleteMenu(SysMenu,SC_MAXIMIZE,MF_BYCOMMAND);
DeleteMenu(SysMenu,SC_MINIMIZE,MF_BYCOMMAND);

- не помогает.

DeleteMenu(SysMenu,SC_CLOSE,MF_BYCOMMAND) затеняет кнопку close,но если форму развернуть, то даже затененная close начинает действовать!

Подскажите какую-нибудь другую функцию или метод. А может быть я неправильные параметры передавал в DeleteMenu?


 
Song ©   (2002-06-04 09:05) [1]

Надо отлавливать тогда WM_SYSCOMMAND и запрещать действие кнопки.


 
QWest   (2002-06-04 09:29) [2]

Эээ, ребята, я незнаю как там у вас в Delphi6 а у нас, в пятой,у формы есть свойство BorderIcons (раскрывающееся такое), в нем вложенные св-ва... Ставишь biMinimize и biMaximize в false и проблема решена....


 
Korona ©   (2002-06-04 21:33) [3]

2Song:
Пробовал и отлавливать WM_SYSCOMMAND. Так можно только запретить действия, но кнопки все равно остаются видимыми. Не сделаешь же в программе так: кнопка minimize есть, а при нажатии на нее ничего не происходит.

2QWest:
А ты попробуй, создай MDI приложение и поставь у MDIChild biMinimize и biMaximize в false - посмотри, что будет. Только WindowState должно быть wsMaximize.


 
Игорь Шевченко ©   (2002-06-05 09:50) [4]

Скорее всего, с MDI этого не получится


 
QWest   (2002-06-05 10:18) [5]

Ну тада есть только один выход (на мой взгляд)- biSystemMenu = false, а на форме создаешь свою кнопу "Закрыть" (как собственно и сделано у меня...)


 
Korona ©   (2002-06-05 21:39) [6]

А может можно как-нибудь скрыть кнопку restore - что то вроде biRestore = false, только через WinAPI? Должен же быть какой то способ.
Я так понимаю отличие обычной формы и MDI состоит в свойстве FormStyle:в MDIChild передается fsMDIChild. Дальше в каком то методе(ах) происходит определение системных кнопок и размещение их на меню родительского окна. Что то типа CreateParametrs. Если эти методы переопределить может что то и получится. Кто-нибудь знает эти методы?
Создавать на панели кнопку закрыть - как то несерьезно. Хотя, может быть кому то известны точные размеры системных кнопок окон - на крайний случай.

Подскажите, пожалуйста. Хочется, чтобы приложение выглядело профессионально.


 
Игорь Шевченко ©   (2002-06-06 09:59) [7]

Наиболее префессионально приложение выглядит, когда оно соответствует стандартам :-) Привыкли люди, что у MDI-окон 3 кнопки - стало стандартом :-)


 
Song ©   (2002-06-06 10:09) [8]

Вообще в АПИ есть много чего. Кроме вышеупомянавшегося DeleteMenu() есть RemoveMenu() DeleteItem() но ИМХО если первое не подействовало, то остальные тоже вряди ли.
Если уж совсем невтерпёж, можно вообще заголовок убрать и рисовать на нём хоть чёрта с рогами.



Страницы: 1 вся ветка

Текущий архив: 2002.06.17;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.019 c
1-55101
shelest
2002-06-06 09:59
2002.06.17
Дерево! Где взять пример?


3-55007
Proton
2002-05-19 19:34
2002.06.17
Чем порекомендуетк пользоваться при созании отчетов?


3-54975
Pavel_Malishev
2002-05-21 23:03
2002.06.17
Выборка по нестандартным месяцам


14-55314
Marser
2002-05-16 23:06
2002.06.17
Валерий Васильевич Лобановский


6-55249
SMike
2002-04-07 20:04
2002.06.17
IMAP client