Как бы вы подружили MDI и меню в ребаре?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Как бы вы подружили MDI и меню в ребаре?

Сообщение Хакер » 26.03.2009 (Чт) 19:16

(Надо же, Хакер в кои-то веки создал тему в этом разделе?)

Наверняка почти все делали MDI-приложения.
Наверняка почти все делали приложения со строкой меню.
Наверняка почти все использовали использовали в своиём приложении тулбар(ы).
Наверняка многие использовали и ребары (помещали в них тулбары).
Наверное есть и те, кто помещал в ребар строку меню?

(Пример последних двух пунктов можно увидеть в IE6, OE6)

А кто-нибудь пытался сделать это подобное с VB-шными MDI-окнами? Как вы решали естественно возникающую при этом проблему с ControlBox-ом подчинённого окна?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

NashRus
Постоялец
Постоялец
 
Сообщения: 388
Зарегистрирован: 18.03.2006 (Сб) 1:16

Re: Как бы вы подружили MDI и меню в ребаре?

Сообщение NashRus » 31.03.2009 (Вт) 21:36

убирать их надо стилями вместе с заголовком. на vbaccelerator так и сделано вроде.
VB-дочерние окна еще и ресайзится начинают при закрытии противно (моргают), когда они максимайз.

karlex
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 138
Зарегистрирован: 30.03.2009 (Пн) 20:25
Откуда: Пермский край, г.Кунгур

Re: Как бы вы подружили MDI и меню в ребаре?

Сообщение karlex » 31.03.2009 (Вт) 23:20

А если через ToolBar вызывать PopupMenu? Или не красиво? :roll:
Все гениальное — просто!
-------------------------------------
Кто ищет — тот всегда найдет!
-------------------------------------
Лень — двигатель прогресса.
Прогресс — двигатель лени.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Как бы вы подружили MDI и меню в ребаре?

Сообщение Хакер » 01.04.2009 (Ср) 5:46

Вы вообще оба поняли, о чём вопрос?

убирать их надо стилями вместе с заголовком.

Кого их?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

karlex
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 138
Зарегистрирован: 30.03.2009 (Пн) 20:25
Откуда: Пермский край, г.Кунгур

Re: Как бы вы подружили MDI и меню в ребаре?

Сообщение karlex » 01.04.2009 (Ср) 7:30

Хакер писал(а):Вы вообще оба поняли, о чём вопрос?

Хакер писал(а):Как бы вы подружили MDI и меню в ребаре?

Решил, что проблема вообще в размещении меню в ReBar, но видимо имелся ввиду некий конфликт возникающий уже после размещения меню...
Тогда извините, пожалуйста, если не в тему =(

Кстати видел на каком-то форуме обсуждение проблемы MDI и меню, что там конкретно было не припомню, но суть была в том, что нужно было использовать события Activate, Deactivate соответственно для "установления меню в активное состояние и пассивное" в том окне, в котором происходят эти события.
Мысль была примерно такой, не знаю поможет ли это чем-то, если что, еще раз извините.
Все гениальное — просто!
-------------------------------------
Кто ищет — тот всегда найдет!
-------------------------------------
Лень — двигатель прогресса.
Прогресс — двигатель лени.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Как бы вы подружили MDI и меню в ребаре?

Сообщение Хакер » 01.04.2009 (Ср) 7:36

Проблема в том, что ControlBox дочернего окна помещается (в самый правый угол) в строку меню (родную!) MDI-окна, а у меня у MDI окна своё собственое TB-based меню, лежащее в ребар. Стандартное не используется. Но оно (строчка) появится, чтобы отобразить там ControlBox.

Я даже не знаю принципиальный выход, не то, что технический.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

karlex
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 138
Зарегистрирован: 30.03.2009 (Пн) 20:25
Откуда: Пермский край, г.Кунгур

Re: Как бы вы подружили MDI и меню в ребаре?

Сообщение karlex » 01.04.2009 (Ср) 8:07

Хакер писал(а):Проблема в том, что ControlBox дочернего окна помещается в строку меню (родную!) MDI-окна, а у меня у MDI окна своё собственое TB-based окно, лежащее в ребар. Стандартное не используется. Но оно (строчка) появится, чтобы отобразить там ControlBox.

Кажется я понял, смоделировал такую же ситуацию, действительно так оно и есть.

Но у меня такое впечатление, что это задумывалось специально, это такая фича, что функционал активного дочернего окна переносится в родительское окно. Хотя это предположение...

Так что есть ли смысл бороть эту ситуацию, может проще построить интерфейс немного иначе?
Т.е. в дочернем окне отказаться от использования ControlBox и всю его функциональность, которую он в себе нес перенести на другой компонент(ы).
Моя личная точка зрения, ни кому ее не навязываю, поэтому прошу не пинать.
Все гениальное — просто!
-------------------------------------
Кто ищет — тот всегда найдет!
-------------------------------------
Лень — двигатель прогресса.
Прогресс — двигатель лени.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Как бы вы подружили MDI и меню в ребаре?

Сообщение Хакер » 01.04.2009 (Ср) 8:09

Т.е. в дочернем окне отказаться от использования ControlBox и все функциональность, которую он в себе нес перенести на другой компонент(ы).

Каким ты образом откажешься от ControlBox? :? (Если что, под ControlBox'ом имеются в виду кнопочки Свернуть/Развернуть/Закрыть)
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

NashRus
Постоялец
Постоялец
 
Сообщения: 388
Зарегистрирован: 18.03.2006 (Сб) 1:16

Re: Как бы вы подружили MDI и меню в ребаре?

Сообщение NashRus » 01.04.2009 (Ср) 8:35

Хакер писал(а):Вы вообще оба поняли, о чём вопрос?

убирать их надо стилями вместе с заголовком.

Кого их?



кнопки на ControlBox.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Как бы вы подружили MDI и меню в ребаре?

Сообщение Хакер » 01.04.2009 (Ср) 8:45

Продолжай мысль.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

NashRus
Постоялец
Постоялец
 
Сообщения: 388
Зарегистрирован: 18.03.2006 (Сб) 1:16

Re: Как бы вы подружили MDI и меню в ребаре?

Сообщение NashRus » 01.04.2009 (Ср) 8:57

тут полнее http://vbaccelerator.com/home/VB/Code/C ... rticle.asp
если не видел

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Как бы вы подружили MDI и меню в ребаре?

Сообщение Хакер » 01.04.2009 (Ср) 9:04

если не видел

Конечно не видел, я этот дебильный сайт не смотрю.

тут полнее http://vbaccelerator.com/home/VB/Code/C ... rticle.asp

Там делают вкладочный интерфейс. Вообще отказываясь полностью от отображения контролбокса. Я не об этом, вообще-то, спрашивал. Я спрашивал насчёт того, как «подружить» (см. заголовок темы), а не о том, как «избавиться» от несговорчивого контролбокса.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

karlex
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 138
Зарегистрирован: 30.03.2009 (Пн) 20:25
Откуда: Пермский край, г.Кунгур

Re: Как бы вы подружили MDI и меню в ребаре?

Сообщение karlex » 01.04.2009 (Ср) 9:08

Хакер писал(а):Каким ты образом откажешься от ControlBox? :? (Если что, под ControlBox'ом имеются в виду кнопочки Свернуть/Развернуть/Закрыть)

М... Видимо я не все понял.
Они же отображаются в родителе только при Maximized клиентском окне, это совершенно правильно иначе где же им еще отображаться?
Ну если они мешают думаю можно через SetWindowLong от них избавится, но уверен для тебя это не секрет, поэтому скорей всего я опять не так тебя понял.

PS: согласен, на "ты" проще.
Все гениальное — просто!
-------------------------------------
Кто ищет — тот всегда найдет!
-------------------------------------
Лень — двигатель прогресса.
Прогресс — двигатель лени.

kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 945
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Re: Как бы вы подружили MDI и меню в ребаре?

Сообщение kibernetics » 01.04.2009 (Ср) 9:14

я честно говоря вообще не понял, что такое ребар и про какое меню говорится :?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Как бы вы подружили MDI и меню в ребаре?

Сообщение Хакер » 01.04.2009 (Ср) 9:21

Смотри, kibernetics.
Вложения
rebar.png
rebar.png (51.35 Кб) Просмотров: 2079
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 945
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Re: Как бы вы подружили MDI и меню в ребаре?

Сообщение kibernetics » 01.04.2009 (Ср) 10:49

т.е. это некий тулбар, но с меню и можно контролами, типа комбик например виден, или текстбокс...
а почему ребар? нельзя ли определение "тулбар" под это дело подвести?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Как бы вы подружили MDI и меню в ребаре?

Сообщение Хакер » 01.04.2009 (Ср) 11:05

kibernetics, что с тобой?

Тулбар — это тулбар, панель инструментов.
Ребар — это контрол, предоставляющий переставляемые панельки-контейнеры.

Тулбар лежит в баре ребара.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

karlex
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 138
Зарегистрирован: 30.03.2009 (Пн) 20:25
Откуда: Пермский край, г.Кунгур

Re: Как бы вы подружили MDI и меню в ребаре?

Сообщение karlex » 01.04.2009 (Ср) 11:11

kibernetics писал(а):что такое ребар?

CoolBar из Common Controls
Все гениальное — просто!
-------------------------------------
Кто ищет — тот всегда найдет!
-------------------------------------
Лень — двигатель прогресса.
Прогресс — двигатель лени.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Как бы вы подружили MDI и меню в ребаре?

Сообщение iGrok » 01.04.2009 (Ср) 11:53

Я, может быть, скажу глупость, потому что пример делать не пробовал - времени нету. Так что больно не пинайте. =)

Но если действительно можно от них совсем избавиться(как говорит karlex), то тогда наверное можно сделать в ребаре панельку с тремя соответствующими кнопками, и по их нажатию отправлять сообщения активному чайлду..
label:
cli
jmp label

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Как бы вы подружили MDI и меню в ребаре?

Сообщение Хакер » 01.04.2009 (Ср) 12:05

А как ты предлагаешь в тулбар-based строке меню делать три таких кнопочки?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

karlex
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 138
Зарегистрирован: 30.03.2009 (Пн) 20:25
Откуда: Пермский край, г.Кунгур

Re: Как бы вы подружили MDI и меню в ребаре?

Сообщение karlex » 01.04.2009 (Ср) 13:01

Хакер писал(а):А как ты предлагаешь в тулбар-based строке меню делать три таких кнопочки?

Можно взглянуть на то, что у тебя сейчас получается?
Ты хочешь чтобы походило на то как это реализовано, например, в Word (в частности 2003)?
Все гениальное — просто!
-------------------------------------
Кто ищет — тот всегда найдет!
-------------------------------------
Лень — двигатель прогресса.
Прогресс — двигатель лени.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Как бы вы подружили MDI и меню в ребаре?

Сообщение Хакер » 01.04.2009 (Ср) 13:24

Стучитесь BV :) Картинка у него, а я свою потерял.

Как в ворде или как в VB6. Только и там и там искуственное всё.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

karlex
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 138
Зарегистрирован: 30.03.2009 (Пн) 20:25
Откуда: Пермский край, г.Кунгур

Re: Как бы вы подружили MDI и меню в ребаре?

Сообщение karlex » 01.04.2009 (Ср) 14:07

Хакер писал(а):как в VB6

В архиве исходники проекта с интерфейсом похожим на VB6.
Только менюшка всегда на своем месте.
Вложения
MDI_ReBar.rar
(2.56 Кб) Скачиваний: 63
Последний раз редактировалось karlex 01.04.2009 (Ср) 14:10, всего редактировалось 1 раз.
Все гениальное — просто!
-------------------------------------
Кто ищет — тот всегда найдет!
-------------------------------------
Лень — двигатель прогресса.
Прогресс — двигатель лени.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Как бы вы подружили MDI и меню в ребаре?

Сообщение Хакер » 01.04.2009 (Ср) 14:09

Да, только зачем было их выкладывать сюда?

Теперь, сделав такой пример, ты понимаешь в чём проблема?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

karlex
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 138
Зарегистрирован: 30.03.2009 (Пн) 20:25
Откуда: Пермский край, г.Кунгур

Re: Как бы вы подружили MDI и меню в ребаре?

Сообщение karlex » 01.04.2009 (Ср) 14:16

Хакер писал(а):Да, только зачем было их выкладывать сюда?

Ну ты же сам сказал: "Как в VB6", вот я и сделал пример.
Хакер писал(а):Теперь, сделав такой пример, ты понимаешь в чём проблема?

Я вижу только одну "проблему", то что меню "заморожено", но даже проблемой то это назвать не осмелюсь.
Так что хз. :?

Хакер! Гляди сюда!
Хм... а может проблема в том, что твое меню находится в ReBar, а кнопочки появляются в ControlBox родителя?

PS: я сделал это исправление еще до того как ты ответил, но видимо я не успел, а ведь я говорил одному человеку, что исправлять сообщения не всегда хорошо...
Последний раз редактировалось karlex 01.04.2009 (Ср) 14:35, всего редактировалось 1 раз.
Все гениальное — просто!
-------------------------------------
Кто ищет — тот всегда найдет!
-------------------------------------
Лень — двигатель прогресса.
Прогресс — двигатель лени.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Как бы вы подружили MDI и меню в ребаре?

Сообщение Хакер » 01.04.2009 (Ср) 14:24

Блин, да вы издеваетесь? Один не знает, что такое РеБар, другой не видит очевиднйо проблемы.
Я ещё раз напоминаю, что меню у нас своё собственное, ToolBar-based, лежащее внутри ребара. И это меню может идти хоть самой нижней строчкой, под тулбаром, к примеру. У тебя же в примере родное меню. Почему?

Удали у MDI-формы меню и сделай его на базе TB. Потом максимизируй дочернее окно, и посмотри, что будет. У MDI-формы появится пустая строчка меню, в которой справа будет ControlBox дочки.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Как бы вы подружили MDI и меню в ребаре?

Сообщение iGrok » 01.04.2009 (Ср) 16:10

Хакер писал(а):А как ты предлагаешь в тулбар-based строке меню делать три таких кнопочки?

А если не в строке меню, а именно отдельным тулбаром всего с тремя кнопками? И этот тулбар показывать только при развёрнутом чайлде?

UPD:
А. Всё. Понял... Пока никак не предлагаю. (
label:
cli
jmp label

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Как бы вы подружили MDI и меню в ребаре?

Сообщение Хакер » 01.04.2009 (Ср) 16:22

Как ты именно те три кнопочки поместишь туда? Или ты предлагаешь создать свой тулбар, абсолютно непохожий на системный, который бы нёс те же самые функции?

Это плохой вариант.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

NashRus
Постоялец
Постоялец
 
Сообщения: 388
Зарегистрирован: 18.03.2006 (Сб) 1:16

Re: Как бы вы подружили MDI и меню в ребаре?

Сообщение NashRus » 01.04.2009 (Ср) 22:01

Хакер писал(а):Как ты именно те три кнопочки поместишь туда? Или ты предлагаешь создать свой тулбар, абсолютно непохожий на системный, который бы нёс те же самые функции?

Это плохой вариант.


Ты сам понимаешь чего ты хочешь? Куда по твоему помещать эти три кнопки, если они нужны ? Или они нужны ? Если не нужны, то правь стиль окна, написал во втором посту.

А насчет акселератора, почему дебильный? Я так понимаю, чтобы так его называть надо иметь свои такие же наработки также удобно сгруппированные, свободно распространяемые и опенсорс.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Как бы вы подружили MDI и меню в ребаре?

Сообщение Хакер » 01.04.2009 (Ср) 22:51

Ты сам понимаешь чего ты хочешь? Куда по твоему помещать эти три кнопки, если они нужны ? Или они нужны ? Если не нужны, то правь стиль окна, написал во втором посту.


Я сам понимаю, чего я хочу. Помещать их по моему в самый правый край TB-based строки меню. Нужны.

Когда мне рассказывают про стили и посылают на вбакселератор — это оскорбительно. Надо было было проявить чудеса наблюдательности и заметить, что до создания данной темы за последние три года я не создал ни одной темы в этом разделе с каким бы то ни было вопросом, а всего за время пребывания меня на форуме таких тем 9 (и то, большинство приходятся на декабрь 2005, когда у меня только-только появилась возможность выходить в интернет и находить там норм. документацию). Надо было как-то уж заметить, что я не один из тех, кто задаёт унылые неинтересные вопросы (коих в этом разделе 95%), причина появления которых либо банальное незнание прописных истин, либо нежелание читать документацию. Как-то надо было догадаться, что автор топика не только превосходно знает VB, и множество других вещей, выходящих за рамки тематики нашего сайта. И что уж о стилях то он точно знает.

А вы: один на VB-акселератор посылает, другой по личке шлёт код, снимающий WS_SYSMENU.
Всё не так просто, как вам показалось. Я сразу сказал, что вопрос не столько технический (как большинство здесь), сколько принципиальный.

А насчет акселератора, почему дебильный? Я так понимаю, чтобы так его называть надо иметь свои такие же наработки также удобно сгруппированные, свободно распространяемые и опенсорс.

Нет. Чтобы так его называть, надо (всего лишь) иметь чувство наприятия к тем идеям, на которых он основан. А основан он на одной простой идее: «Не хватает ума сделать что-то самому, заходи к нам и посмотри, как за тебя это сделали те, у кого хватает. Понравится — можешь воспользоваться».

Хотя наработки имеются. Зачем им (наработкам) быть опенсорсными, я не понимаю.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

След.

Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 38

    TopList