![]() |
|
|
![]()
|
|
| tonchitos |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 447 Регистрация: 24.2.2007 Репутация: 1 Всего: 40 |
Вот у мя к примеру есть мейнфрейм, в нем есть панель аутлука и дерево на этой панели
CBCGPOutlookBar m_wndBarOutlook; CTreeCtrl m_OutlTreeCtrl; вопрос такой, вот когда я добавила в класс фрейма обработчик контекст меню - он обрабатывал нажатие на клиентскую область фрейма и не обрабатывал нажатие на панель... как мне сделать чтоб у панели было контекстное меню? -------------------- – Люди забыли эту истину, – сказал Лис, – но ты не забывай: ты навсегда в ответе за всех, кого приручил. |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Пиши обработчик WM_CONTEXTMENU у панели, а еще лучше - у дерева (если это имеется в виду).
-------------------- ... |
|||
|
||||
| tonchitos |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 447 Регистрация: 24.2.2007 Репутация: 1 Всего: 40 |
но в таком случае клас панели надо переопределять, верно ж?
-------------------- – Люди забыли эту истину, – сказал Лис, – но ты не забывай: ты навсегда в ответе за всех, кого приручил. |
|||
|
||||
| tonchitos |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 447 Регистрация: 24.2.2007 Репутация: 1 Всего: 40 |
вот что за бред, переопределила контрол, а контекстное меню вызываетя почему-то двойным щелчком
и ф чем прикол? -------------------- – Люди забыли эту истину, – сказал Лис, – но ты не забывай: ты навсегда в ответе за всех, кого приручил. |
||||
|
|||||
| tonchitos |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 447 Регистрация: 24.2.2007 Репутация: 1 Всего: 40 |
плюс я в свое переопределенное дерево добавила обработчики нажатия пунктов меню...а они все равно серенькие...((
-------------------- – Люди забыли эту истину, – сказал Лис, – но ты не забывай: ты навсегда в ответе за всех, кого приручил. |
|||
|
||||
| tonchitos |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 447 Регистрация: 24.2.2007 Репутация: 1 Всего: 40 |
вот обработчик онконтекстменю у дерева вызывается при двойном клике... это раз
обработка выбора пунктов меню вообще не вызывалась, пока я обработку в мейнфрейм не перенесла. это два мне неудобно да и некрасиво это, обрабатывать меню в классе дерева, а пункты меню - в классе рамки как быыыыть? -------------------- – Люди забыли эту истину, – сказал Лис, – но ты не забывай: ты навсегда в ответе за всех, кого приручил. |
|||
|
||||
| Earnest |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Если имеешь в виду двойной щелчок правой клавишей, то это, скорее всего, из-за лишнего кода в OnContextMenu. Оставь там только TrackPopupMenu и вместо GetParentFrame() поставь this. А выделение элемента перенеси в обработчик OnRButtonDown, только в конце его не забудь вызвать Default, а то меню вызываться не будет.
Разумеется, их никто не вызывает - ты же парентом поставила главное окно, а в нем нужных обработчиков нет. Там оболочка трудится: где нет обработчик, засеривает. А по Windows перед выпадением меню посылается сообщение WM_INITPOPUPMENU, вот в нем и можно все обработать. Это если нужно иногда что-то дизэблить или текст менять или еще что, причем скопом, через вызов EnableMenuItem для всех нужных пунктов. А если не нужно - то вобще этот обработчик можно не делать. И естественно, все обработчики нужно в дерево. -------------------- ... |
||||
|
|||||
| tonchitos |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 447 Регистрация: 24.2.2007 Репутация: 1 Всего: 40 |
ну насчет двойного щелчка...он же даж в ф-ию не заходит (((
-------------------- – Люди забыли эту истину, – сказал Лис, – но ты не забывай: ты навсегда в ответе за всех, кого приручил. |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Странно... вешала я на деревья контектсное меню, всегда нормально было...
-------------------- ... |
|||
|
||||
| tonchitos |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 447 Регистрация: 24.2.2007 Репутация: 1 Всего: 40 |
я щас тогда побольше кода выложу, может это ситуацию прояснит...
в классе фрейма
все вроде как надо -------------------- – Люди забыли эту истину, – сказал Лис, – но ты не забывай: ты навсегда в ответе за всех, кого приручил. |
||||||
|
|||||||
| tonchitos |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 447 Регистрация: 24.2.2007 Репутация: 1 Всего: 40 |
добавила обработку по правому клику, в общем сути не мняет, тк в окконтекст мен заходит только по двум кликам...
может мне все перенести в правый клик, а он контекст меню убрать? -------------------- – Люди забыли эту истину, – сказал Лис, – но ты не забывай: ты навсегда в ответе за всех, кого приручил. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |