Меню ОфисXP. Текстбокс в строке меню.

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

Меню ОфисXP. Текстбокс в строке меню.

Сообщение iGrok » 08.07.2007 (Вс) 21:55

Кхм. Может и баян =) но я не нашел решения.

Подскажите, плз, как сделать. Первая мысль была SetParent. Но как-то HWND пункта меню найти не удалось. )
Видимо это тупиковый путь. =)

Кто знает, как?

UPD: Я не хочу править меню офиса =))
Я хочу в своей софтине в стандартное меню стандартными средствами впихнуть поле ввода. =)
Последний раз редактировалось iGrok 09.07.2007 (Пн) 1:24, всего редактировалось 1 раз.
label:
cli
jmp label

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

Сообщение Хакер » 08.07.2007 (Вс) 22:02

Непонятно, что именно требуется. Засунуть текст-бокс в строчку меню чужого Office-приложения?
—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
Откуда: Сетевое сознание

Сообщение iGrok » 08.07.2007 (Вс) 22:04

Нет. Засунуть текстбокс в меню своего приложения, созданное при помощи API CreatePopupMenu + AppendMenu

Делать собственный контрол из лэйблов и текстбоксов не хочу.
Последний раз редактировалось iGrok 08.07.2007 (Вс) 22:17, всего редактировалось 1 раз.
label:
cli
jmp label

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 08.07.2007 (Вс) 22:16

Никак.
Меню в Офисе -- никакое не меню, а хитро отрисовываемое всплывающее окно.
Изображение

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

Сообщение iGrok » 08.07.2007 (Вс) 22:39

Гкхм. А вот об этом я и не подумал =((
Забавно, но в VB меню как таковое почему-то тоже не обнаружилось...

И в Опере. И много еще где. Это все тоже "хитро отрисовываемые всплывающие окна", или я чего-то не догоняю?
label:
cli
jmp label

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

Сообщение Хакер » 08.07.2007 (Вс) 22:44

tyomitch
А разве обычное виндовое меню - не всплывающие окна?
—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
Откуда: Сетевое сознание

Сообщение iGrok » 08.07.2007 (Вс) 22:55

Ну вообще, судя по некоторым моментам - это окно с классом "#32768"
label:
cli
jmp label

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

Сообщение Хакер » 08.07.2007 (Вс) 22:58

Spy++ говорит что окно. Но я тестировал только на контекстном меню. Поэтому не могу с полной уверенностью заявить, что все без исключения меню - окна. Но я уверен, что механизмы, работающие с попап-контекстным-меню работают и с обычными меню.

И другой стороны - А если ни окнами, то чем им (меню) быть?
—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
Откуда: Сетевое сознание

Сообщение iGrok » 08.07.2007 (Вс) 23:07

Да окна это. Что ж еще, если не окна..
В общем-то и меню оффиса - окно. С классом "MsoCommandPopup".. Тёмыч прав. =(
Придется самому делать =(

Геморно, но интересно =))
label:
cli
jmp label

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

Сообщение Хакер » 08.07.2007 (Вс) 23:10

1) Почему придётся делать самому?
2) Если это окна, то почему нельзя использовать SetParent (я попробовал тупо поменять парент - в итоге - меню скрылось. Но не убилось (иначе бы моя программа рухнула, потому что окно текстбокса было бы убито вместе с окном меню).
3) Если вариант 2 неприменим, почему бы не сабклассить и не отрисовывать текстбокс вручную?

PS. Сама идея помещения тексбокса в меню мне не нравится.
—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
Откуда: Сетевое сознание

Сообщение iGrok » 08.07.2007 (Вс) 23:49

Ну вообще, меня это заинтересовало лишь как одна из возможных реализаций того, что надо сделать =)

Не будет - ну и ладно. Но уже интересно попробовать.

З.Ы. Сабклассить по hWnd самой менюшки???
Честно говоря, я не понял, как его отлавливать.. С hMenu никакой связи.

З.З.Ы. А чем не нравится?
label:
cli
jmp label

EUGY
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 214
Зарегистрирован: 09.11.2006 (Чт) 22:51
Откуда: Мурманск

Сообщение EUGY » 09.07.2007 (Пн) 0:09

iGrok писал(а):Честно говоря, я не понял, как его отлавливать..

Класс окна знаешь, родителя знаешь, что еще надо?

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

Сообщение iGrok » 09.07.2007 (Пн) 1:01

Точно.. Тормоз =)

Лан, поэкспериментирую. Если выйдет че толковое - отпишусь.
label:
cli
jmp label

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 09.07.2007 (Пн) 1:12

вопрос исчерпан
Последний раз редактировалось SSecurity 09.07.2007 (Пн) 1:26, всего редактировалось 1 раз.
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

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

Сообщение iGrok » 09.07.2007 (Пн) 1:23

Нет, не правильно =)
И в третьем сверху сообщении я написал чего же я хочу =)

Как в меню офиса лишний текстбокс запихнуть я знаю =)
label:
cli
jmp label

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

Сообщение Хакер » 09.07.2007 (Пн) 4:27

Был когда то такой контрол - MenuX. Автор - Александр Щербаков (если я не ошибся). Можешь связаться с ним и попробовать спросить.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 09.07.2007 (Пн) 8:41

Хакер писал(а):А разве обычное виндовое меню - не всплывающие окна?

Они не хитро отрисовываемые всплывающие окна.
Хотя в owner-draw меню можно хоть мону-лизу затолкать, не то что текстбокс.


Пример суперкласса для окна стандартного меню, дабы его граница была разноцветной (что недоступно owner-draw меню), есть в PopupMenu2.


Александр Щербаков, если это тот о ком я думаю, давно потерял к VB всякий интерес :-(
Изображение

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

Сообщение Хакер » 09.07.2007 (Пн) 8:51

Либо меня совсем глючит, либо я не знаю что.

Нашёл три компонента MenuX и у каждого "свой" автор:
1) Александр Щербаков
2) Лесниченко А.Ю.
3) Skorodumov Aleksandr
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 09.07.2007 (Пн) 8:54

А контент одинаковый? :-)
Изображение

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

Сообщение Хакер » 09.07.2007 (Пн) 8:56

Гы. У всех трёх в VersionInfo
Copyright: CopyLeft (L) 2002 Lesnichenko A.Y.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.


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

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

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

    TopList