![]() |
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]() ![]() ![]() |
|
Dmitriy2k |
|
|||
![]() шустрый ![]() Профиль Группа: Участник Сообщений: 96 Регистрация: 6.11.2005 Репутация: нет Всего: нет |
Подскажите пожалуйста. У меня готовый ListView(стиль REPORT).
Я вызываю над ним контекстное меню
DoContextMenu - моя функция, создает контекстное меню Хотелось бы узнать, как можно определить - на каком элементе появилось контекстное меню? Не хотелось бы услышать такой ответ- "просчитай высоту строки, умножь и тд итп.. файл- пример прилагается. Присоединённый файл ( Кол-во скачиваний: 11 ) ![]() |
|||
|
||||
BorisVorontsov |
|
|||
![]() Thinker ![]() ![]() Профиль Группа: Комодератор Сообщений: 714 Регистрация: 3.11.2005 Где: Молдавия, г. Киши нёв Репутация: 4 Всего: 10 |
Лови NM_RCLICK.
-------------------- [code=cpp] const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out); for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl; [/code] |
|||
|
||||
Doc_d0s |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 206 Регистрация: 15.12.2004 Где: в кресле Репутация: нет Всего: 3 |
И что дальше???
--------------------
Админ- это вождь Apache'й :) |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 33 Всего: 183 |
Не нужно никого ловить, тем более мы уже поймали WM_CONTEXTMENU. Нужно узнать коорднаты мыши (GetCursorPos), преобразовать их в координаты окна (ScreenToClient) и послать сообщение LVM_SUBITEMHITTEST (или воспользоваться макросом ListView_SubItemHitTest).
В результате получишь и номер строки, и другую информацию (вдруг пригодится). Добавлено через 1 минуту и 26 секунд Ах да, в WM_CONTEXTMENU уже есть координаты мыши, экранные. -------------------- ... |
|||
|
||||
BorisVorontsov |
|
|||
![]() Thinker ![]() ![]() Профиль Группа: Комодератор Сообщений: 714 Регистрация: 3.11.2005 Где: Молдавия, г. Киши нёв Репутация: 4 Всего: 10 |
Дальше читать MSDN...
-------------------- [code=cpp] const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out); for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl; [/code] |
|||
|
||||
Dmitriy2k |
|
|||
![]() шустрый ![]() Профиль Группа: Участник Сообщений: 96 Регистрация: 6.11.2005 Репутация: нет Всего: нет |
Earnest: Спасибо большое за подсказку.
Координаты окна получил. Номер элемента ListView узнал, что собственно мне и было нужно. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Системное программирование и WinAPI" | |
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |