Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

КОНТЕКСТНОЕ МЕНЮ!!!


Onyx ©   (2003-08-08 13:08:00) 

Привет мастерам! У меня следующий вопрос: Есть контекстное меню. Надо сделать так, чтобы обработчики левой и правой кнопок мыши были разными. Т.е кликаешь левую кнопку на пункте меню - исполняется какая-либо команда, кликаешь правую - на выбранном пункте меню устанавливается флажок (Checked:=true), причем при клике на правой кнопке мыши меню не должно исчезать. Вот такой вот вопрос. Кто знает, подскажите. Заранее спасибо.


Onyx   (2003-08-08 14:48:00) [1]

А теперь следующий вопрос: как на Delphi реализовать обработку этого сообщения? Примерчик приведите, пожалуйста. Хотя бы кратенький.


Игорь Шевченко   (2003-08-08 14:39:00) [2]

Посылает. WM_CONTEXTMENU сообщение называется


Onyx   (2003-08-08 14:36:00) [3]

Так какое же сообщение посылает система моей программе во время правого клика?


Onyx   (2003-08-08 14:30:00) [4]

Ну хорошо возможно таких API и нет. Тогда кто ответит на следующий вопрос я показываю контекстное меню с помощью ф-ции TrackPopupMenuEx() причем использую спец. флажок, к-й позволяет выбирать пункт меню только по нажатию левой кнопки мыши, т.о. когда я кликаю правой кнопкой по пункту меню - ничего не происходит. Но во время правого клика система по-любому посылает какое-то сообщение моей программе(какое? - не знаю). Так вот к чему это я, а к тому что в обработчике данного сообщения можно записать код, реализующий обработку правого клика мыши.


Rouse_   (2003-08-08 14:14:00) [5]

Тут на сайте есть статья про пользовательские интерфейсы, что-то про примочки или фенечки, короче про ошибки разработчиков при создании нестандартных интерфейсов пользователя.
Занимательное, скажу, чтиво, советую...

Желаю успехов


Игорь Шевченко   (2003-08-08 14:07:00) [6]

А никак. Пользоваться тем поведением, которое имеет контекстное меню. Нет таких API


Onyx   (2003-08-08 14:00:00) [7]

А всё-таки, как быть с контекстным меню?


Игорь Шевченко   (2003-08-08 13:57:00) [8]


> чтобы я вместо контекстного меню показывал форму похожую
> на контекстное меню


Именно


Onyx   (2003-08-08 13:56:00) [9]

Объясни пожалуйста panov, что ты имеешь в виду под "Создай окно с пунктами меню", ты хочешь сказать чтобы я вместо контекстного меню показывал форму похожую на контекстное меню. Если я не прав, то исправь меня.


panov   (2003-08-08 13:39:00) [10]

Создай окно с пунктами меню. А сни ты сможешь делать все, что захочешь.


Onyx   (2003-08-08 13:34:00) [11]

А что разве стандартными API нельзя решить этот вопрос. Обработчик левой кнопки мыши - это я знаю. Вся загвоздка состоит в обработчике правой кнопки (сделать надо именно так, как я написал в вопросе).


panov   (2003-08-08 13:28:00) [12]

А что так кричать-то...


Игорь Шевченко   (2003-08-08 13:11:00) [13]

1) Написать свой аналог меню
2) Не мучить пользователей


Наверх

Титульная страница Поиск, карта сайта Написать письмо