Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[44.205.5.65] |
|
Сообщ.
#1
,
|
|
|
CListCtrl как поймать нажатие Enter? нажатие обычнй клавиши ловится через OnKeyDown() а как Enter?
|
Сообщ.
#2
,
|
|
|
Например так:
1. Порождаешь CMyListCtrl от ClistCtrl. 2. Перекрываешь PreTranslateMessage: BOOL CMyListCtrl:: PreTranslateMessage(MSG* pMsg) { if ((pMsg->message == WM_KEYDOWN) && (pMsg->wParam == VK_RETURN)) { //а здесь пишешь что тебе надо. Мне было надо модменить ентер на даблклик pMsg->wParam = WM_LBUTTONDBLCLK; pMsg->lParam = MAKELPARAM(pMsg->pt.x, pMsg->pt.y); SendMessage(WM_LBUTTONDBLCLK, 0,0); } return CListCtrl:: PreTranslateMessage(pMsg); } |
Сообщ.
#3
,
|
|
|
Спасибо, работает.
|
Сообщ.
#4
,
|
|
|
Подниму старую тему. Сделал, но не работает!
Дальше в обработчике WM_LBUTTONDBLCLK пытаюсь получить номер строки, на которой был клик: POSITION p = lc.GetFirstSelectedItemPosition(); if(p == NULL) return -1; return lc.GetNextSelectedItem(p); возвращает -1. При этом CListCtr теряет фокус. Добавлял вызов SetFocus() - не помогло А по двойному клику мышкой все работает. |