![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 03.04.2009
Сообщений: 305
|
![]()
Здравствуйте. Можно ли как-нибудь заменить контекстное меню на свое собственное окно? Мне это нужно для изменения внешнего вида меню. Да, я пробовал перерисовывать нативные элементы меню через OnMeasureItem и OnDrawItem, но этого оказалось не достаточно. Используя этот метод перерисовки, нельзя рисовать за приделами границ элемента меню.
Следующим экспериментом было создание обычного окна и рисование элементов меню прямо на нем. Получилось так, как это было задумано, но тут возникла проблема: необходимость отслеживания различных событий, при которых форма (собственно нарисованное меню) должна закрываться. Меня интересует, есть ли готовые решения для подобного отслеживания событий? Может есть уже реализованные методы WinAPI, для создания подобных меню? Прошу помощи. UPD Была еще идея с отслеживанием события потери фокуса у собственно созданного меню. Однако, меню не должно перетягивать на себя фокус с приложения, вызвавшего его. Может я не до конца разобрался с получением фокуса. Только что наткнулся на некоторое описание флага WS_EX_NOACTIVATE. Буду разбираться с ним. Хотя раньше ничего не получалось. Последний раз редактировалось kangreon; 30.09.2013 в 23:44. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 05.07.2010
Сообщений: 136
|
![]()
Не совсем понятно где надо заменить контекстное меню. Если в контроле, например TMemo, то отключаем там штатное контекстное меню и вешаем в обработку правого щелчка мыши открытие своего окна.
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 03.04.2009
Сообщений: 305
|
![]()
igh0st
Вызвать контекстное меню из любого места - не проблема, а вот отловить все события, при которых необходимо закрыть меню, уже проблема. |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 05.07.2010
Сообщений: 136
|
![]()
Вроде глобальным хуком можно отловить момент появления контекстного меню.
|
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Обработка контекстного меню (Java) | guzel20 | Помощь студентам | 1 | 16.12.2012 19:12 |
Не работает локализация для контекстного меню | Tolias | Общие вопросы .NET | 1 | 23.05.2012 01:51 |
вызов из контекстного меню | Dimarik | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 14 | 12.07.2011 19:03 |
отключить возможность вызова контекстного меню | artemavd | Microsoft Office Word | 0 | 04.06.2010 17:50 |
Как запретить отображение контекстного меню | kovalevskivf | Microsoft Office Excel | 2 | 10.05.2009 15:18 |