Главная страница
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.021 c
3-55040
kserg@ukr.net
2002-05-22 13:32
2002.06.17
MSSQL(ADOQuery) - как отловить


3-54986
Ш-К
2002-05-22 03:55
2002.06.17
Передача имени таблицы в процедуру.


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


14-55286
tsarevep
2002-05-13 11:53
2002.06.17
Не совсем по Delphi но рядом


6-55238
DiGiTaL
2002-04-07 07:59
2002.06.17
Как с помощью Аутлука забрать почту?