Главная страница
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.015 c
3-55006
button
2002-05-23 15:11
2002.06.17
State = Edit и Сортировка


8-55230
Al_va
2002-02-01 12:59
2002.06.17
Свойства ShockwaveFlash


1-55097
Ray_Parker
2002-06-02 20:43
2002.06.17
Вопрос по TTimer


4-55365
aaaaaaaaaaaaaaaa
2002-04-16 13:41
2002.06.17
Отправить email прямо через SMTP сервер


1-55190
Alexander_D6_XP
2002-06-04 18:04
2002.06.17
сделать Ctrl+Enter в TMemo?!