Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Динамический toolbar 
:(
    Опции темы
Vicul
Дата 22.2.2011, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 169
Регистрация: 27.4.2009

Репутация: нет
Всего: нет



Всем привет,

стоит задача написать плагин для IE, в котором будет присутствовать панелька с инструментами - комбоксами, контекстным меню,
кнопками итд.  В принципе если все эти элементы известны, то  создать такое через ATL/MFC  проблем нет, примеров много. 
Но у меня эта панелька может меняться, плагин периодически будет обращаться к серверу и брать хмл с новыми злементами.
Проблема в том, что эти элементы должны через ресурсы получить свой ИД, который должен быть привязан с картой событий 
и со своими методами. Как это сделать динамически - не знаю. Хотя есть идея - забить  в проект максимальное количество ресурсов, а потом 
включать  и формировать из них то количество, которое необходимо, но как то некрасиво получается.  Кто, что посоветует?          
 
PM MAIL   Вверх
Earnest
Дата 22.2.2011, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Можно всем кнопкам тулбара присвоить одинаковый ID. А затем в его обработчике уже определять какую кнопку нажали (по позиции мыши).
Разумеется, при этом должна быть какая-то структура данных, позволяющая определить, какая команда связана с кнопкой номер x. 


--------------------
...
PM   Вверх
Vicul
Дата 22.2.2011, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 169
Регистрация: 27.4.2009

Репутация: нет
Всего: нет



Спасибо,

неплохая идея, как то с привязкой по позициям я пропустил, а как быть с командами контекстных  менюшек?
PM MAIL   Вверх
Earnest
Дата 23.2.2011, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



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


--------------------
...
PM   Вверх
Vicul
Дата 23.2.2011, 15:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 169
Регистрация: 27.4.2009

Репутация: нет
Всего: нет



Цитата

в меню нельзя, вроде, добавить одинаковые ид-ры, кроме сепаратора.


только что попробовал - можно добавлять сколько угодно команд, но метод
в карте событий, естественно, должен быть один. Т.е. там уже делать 
распознавание команд. Сложновато получается, но это лучше, чем 
забивать в проект максимальное число элементов.     
PM MAIL   Вверх
Earnest
Дата 23.2.2011, 19:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



О, не знала. Тогда точно так же как в тулбаре - определять команду по позиции мыши на момент сообщения.
Насколько я помню, есть способ определить, откуда пришла команда - от меню или от контрола - по lParam. Параметры сообщения в обработчике получить не проблема - есть спец. функция, которая возвращает обрабатываемое сообщение.


--------------------
...
PM   Вверх
Vicul
Дата 24.2.2011, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 169
Регистрация: 27.4.2009

Репутация: нет
Всего: нет



Цитата

есть спец. функция, которая возвращает обрабатываемое сообщение. 


 а как называется, не помнишь?
PM MAIL   Вверх
Earnest
Дата 24.2.2011, 18:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



CWnd::GetCurrentMesssage


--------------------
...
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0566 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.