контекстное меню

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
VBOSS
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 04.11.2003 (Вт) 10:45

контекстное меню

Сообщение VBOSS » 04.11.2003 (Вт) 11:00

Я думаю все видели (или покрайней мере большинство) как ACDSee 4.0 добавляет в контекстное меню возможность смотреть графические файлы, то есть при клике на каком-нибудь «***.jpg» левой кнопкой
мыши выпрыгивает минюшка в которой его можно посмотреть (примерно так).
Дык вот интересно узнать может ли наш любимый VB6 сделать тоже самое (ну хотя бы приблизительно то же самое) если может, то большая просьба поделитесь соображениями на эту тему
(ну как это типа делается :) ).

goro
Постоялец
Постоялец
 
Сообщения: 494
Зарегистрирован: 03.12.2002 (Вт) 11:45
Откуда: Украина, Запорожье

Сообщение goro » 05.11.2003 (Ср) 0:22

Точный ответ дать не могу, но скажу что это делается при помощи сабклассинга.
ПРЕВЕД

VBOSS
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 04.11.2003 (Вт) 10:45

Сообщение VBOSS » 05.11.2003 (Ср) 16:45

Жаль, очень жаль никто точно не говорит :(
и в нете никак найти ничего подобного немогу (Будемм искать :) )

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 05.11.2003 (Ср) 18:19


VBOSS
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 04.11.2003 (Вт) 10:45

Сообщение VBOSS » 05.11.2003 (Ср) 19:35

RTFM


нет, это понятно как в контекстное меню обычную минюшку запихать, но как создатели ACDSee 4.0 туда целую "прогу" запихали, вот в чём вопрос???

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 06.11.2003 (Чт) 11:33

Точно также. В CLASSES_ROOT создаешь ключ, в ключе, помимо shell создаешь CLSID, а в CLASSES_ROOT\CLSID\{CLSID} делаешь страшные вещи, подробности в MSDN.
Lasciate ogni speranza, voi ch'entrate.

moderator
Модератор
Модератор
 
Сообщения: 1896
Зарегистрирован: 10.12.2001 (Пн) 18:11
Откуда: Украина, Харьков

Сообщение moderator » 06.11.2003 (Чт) 13:18

alibek писал(а):Точно также. В CLASSES_ROOT создаешь ключ, в ключе, помимо shell создаешь CLSID, а в CLASSES_ROOT\CLSID\{CLSID} делаешь страшные вещи, подробности в MSDN.


Ну или посмотреть, как там ACDSee сделал - на крайний случай :wink:
Модератор
http://www.vbstreets.ru / moderator@vbstreets.ru

... Почетные награды: [*], [+], [!]. Все еще впереди...

VBOSS
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 04.11.2003 (Вт) 10:45

Сообщение VBOSS » 06.11.2003 (Чт) 14:06

Ну или посмотреть, как там ACDSee сделал - на крайний случай


Уже посмотрел, только может я невсё увидел!? както они там замутили похитрому :D (ну ничего будем смотреть)

VBOSS
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 04.11.2003 (Вт) 10:45

Сообщение VBOSS » 06.11.2003 (Чт) 15:59

Значит так при более пристальном разглядывании зтого дела
можно увидеть следующее:
HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers\PicaView
по умолчанию значение равно "CLSID", которое отправляет нас к dll
под названием PicaView - из которой экспортируются следующие функции:
CheckLicenseNumber
DllCanUnloadNow
DllGetClassObject
InitTrialPeriod
RegisterPlugIns
ShowImage - можно предположить что с помощью её и показывается картинка в этом контекстном меню. Дык вот к чему я клоню то получаетсся действительно Сабклассинг! А может я и неправ :)
может у кого на эту тему соображения какиенибудь появились, поделитесь господа.
ЗЫ А еслия я прав? :D

Vi
Постоялец
Постоялец
 
Сообщения: 739
Зарегистрирован: 25.01.2002 (Пт) 11:03
Откуда: Россия, Ижевск

Сообщение Vi » 06.11.2003 (Чт) 17:18

При чем здесь Subclassing?
Это расширение функциональности оболочки Shell (Platform SDK Documentation -> User Interface Service -> Windows Shell) СОМ объектами.

PS
И об этом говорит хотя бы функция DllGetClassObject.
Vita
Выше головы не прыгнешь, ниже земли не упадешь, дальше границы не убежишь! (с) КВН

VBOSS
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 04.11.2003 (Вт) 10:45

Сообщение VBOSS » 06.11.2003 (Чт) 18:09

Это расширение функциональности оболочки Shell (Platform SDK Documentation -> User Interface Service -> Windows Shell) СОМ объектами

если не в облом то можно об этом поподробнее.

Vi
Постоялец
Постоялец
 
Сообщения: 739
Зарегистрирован: 25.01.2002 (Пт) 11:03
Откуда: Россия, Ижевск

Сообщение Vi » 06.11.2003 (Чт) 18:58

Влом-не влом, но объем информации там - дай боже.
Там есть много уровней сервиса, начиная от обслуживания типов файлов до создания своих виртуальных каталогов. Короче на все случаи жизни.

Беда в том, что не все интерфейсы, которые нужны при этом, поддерживаются VB. Например, IContextMenu им не поддерживается.
Vita
Выше головы не прыгнешь, ниже земли не упадешь, дальше границы не убежишь! (с) КВН

VBOSS
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 04.11.2003 (Вт) 10:45

Сообщение VBOSS » 07.11.2003 (Пт) 6:10

А чёрт с ним с этим меню :D , рас неполучается ника. Ченибудь другое придумаю.
:D :D Всем БООЛЬШОЕ СПАСИБО!! :D :D


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

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

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

    TopList