Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Menu item 
:(
    Опции темы
NiJazz
  Дата 8.3.2005, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Jazz coder
****


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

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



Добавляю программно пункт меню:
Код

CMenu m;
m.CreatePopupMenu();
m.AppendMenu(MF_STRING, ID, "Menu item");

Как с помощью ID задать ту самую функцию, которая должна выполняться при клике по новому айтему? Или: как передать событие через ID?
Спасибо.
PM MAIL   Вверх
bel_nikita
Дата 30.6.2005, 23:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

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



актуально и в нынешнее время smile
Как к созданому меню прилепить обработчик?


--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
Step
Дата 1.7.2005, 03:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



TrackPopupMenu
принимет параметр CWnd *

нужна поставить тот в котором вы хотите ловить мессаги

и в класс этого окна вставляете обработчик on_command а вот какой параметр там отвечает за это дело не помню




--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
Earnest
Дата 1.7.2005, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Код

CMyCmdTarget: public ...
{
   void OnXXXHandler();
}

BEGIN_MESSAGE_MAP(...)
   ...
   ON_COMMAND(ID_XXX,OnXXXHandler)
   ...
END_MESSAGE_MAP()


Обработчики нужно вставлять в то окно, которому принадлежит меню, или в CmdTarget, куда команды переправляются. Если это меню главного окна, то стандартная диспетчиризация комманд обеспечит их получение в классах главного окна, приложения, вида и документа, т.е. обработчик можно вставить туда, где удобнее его писать. Если TrackPopupMenu, то в тот объект CWnd, который туда передается.


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


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

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



Ребята, кнопки, меню и тулбары- всегда ON_COMMAND!


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
Step
Дата 3.7.2005, 19:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Coocky, только при этом нужно менюшки указать в какое окно команд кидать smile


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
Coocky
Дата 3.7.2005, 19:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

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



Step
А разве в классе, где обработчик стоит,не пройдет?


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
Step
Дата 3.7.2005, 19:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



нужно указать класу менюшки куда отправлять
Добавлено @ 19:52
Цитата(Earnest @ 1.7.2005, 10:47)
Обработчики нужно вставлять в то окно, которому принадлежит меню,

вернее не пренадлежит, а на какое окно настроена менюшка, ведь дело идет о попап, который в конструкторе не крепиться smile


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
Coocky
Дата 3.7.2005, 19:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

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



Step
Ты меня запутал, вот этой фразой
Цитата
ведь дело идет о попап, который в конструкторе не крепиться 
smile


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
Step
Дата 3.7.2005, 20:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



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

попапы создаються на лету
Цитата(NiJazz @ 8.3.2005, 17:38)
CMenu m;
m.CreatePopupMenu();
m.AppendMenu(MF_STRING, ID, "Menu item");

а от какого окна они созданы ты можешь сказать

куда меню будет месаги кидать, тоже не можешь..


вот и надо ему указать куда

и сделать это можно через
Цитата(Step @ 1.7.2005, 03:51)
TrackPopupMenu


логично ?


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
Coocky
Дата 3.7.2005, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

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



Step
Стоп!
Если я размещу кнопку на диалоге, и в ней создам меню, а обработчик создам в окне, то он не отработает?
Старик, я не спорю, просто интересно, и хочу понять.. smile


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
Step
Дата 3.7.2005, 21:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



а как ты в ней меню сделаешь, если попап и не передашь окно в попап, то не обработает

а вот креате кнопки

Код

virtual BOOL Create(
   LPCTSTR lpszCaption,
   DWORD dwStyle,
   const RECT& rect,
   CWnd* pParentWnd,
   UINT nID 
);


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

а когда ты просто объявляешь сменю то ни какой креате для меню не вызываеться,

хотя креате попап вызываеться, но в нем не указываеться окно

менюшки аттачаться к окнам!


Coocky, честно говоря я уже и сам запутался, если студия есть просто попробуй создать меню по приведенному выше коду
вызови трак и посавь туда чужой указатель, а потом посмотри словит твое окно месагу от меню или нет
Добавлено @ 21:08
у меня студии нету


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
bel_nikita
Дата 3.7.2005, 21:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

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



Уже разобрался smile На днях выложу. Меню конструируешь в XML-файле. Работает через ON_COMMAND


--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
Step
Дата 3.7.2005, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



bel_nikita, да ты проствети нас как ты прелипил обработчик, передавал ли указатель на тот клас в котором обработчик стоит


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
Coocky
Дата 3.7.2005, 21:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

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



bel_nikita
Цитата
Меню конструируешь в XML-файле

smile
Мужики, чем дальше в лес, тем больше дров...


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


 




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


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

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