Главная страница
    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.46 MB
Время: 0.006 c
4-55372
Saint_Byte
2002-04-16 15:33
2002.06.17
Файловые события


7-55337
Alex Dobrushin
2002-03-18 19:55
2002.06.17
Печать через WordApplication


3-55034
jenbbond
2002-05-24 09:44
2002.06.17
Проблемы с кодировкой


14-55294
iva
2002-05-08 11:17
2002.06.17
WinAPI + MSDN + MS SDK + MS DDK


1-55110
Ron
2002-06-06 10:11
2002.06.17
Иерархи





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский