На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела Visual C++ / MFC / WTL (далее Раздела)
1) На Раздел распространяются все Правила Форума.
2) Перед тем, как создать новый топик, убедитесь, что Вы читали Правила создания тем в Разделе.
3) Вопросы, не связанные с программированием (настройки MS Visual Studio, книги, библиотеки и т.д.),
обсуждаются в разделе C/C++: Прочее
4) Вопросы разработки .NET (Windows Form, C++/CLI и т.п.) приложений на Visual C++/C# обсуждаются в разделе .NET.
5) Нарушение Правил может повлечь наказание со стороны модераторов.

Полезные ссылки:
user posted image FAQ Раздела user posted image Обновления для FAQ Раздела user posted image Поиск по Разделу user posted image MSDN Library Online
Модераторы: ElcnU
  
> CListCtrl как поймать нажатие Enter?
    CListCtrl как поймать нажатие Enter? нажатие обычнй клавиши ловится через OnKeyDown() а как Enter?
      Например так:
      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);
      }
        Спасибо, работает.
          Подниму старую тему. Сделал, но не работает!

          Дальше в обработчике WM_LBUTTONDBLCLK пытаюсь получить номер строки, на которой был клик:
          ExpandedWrap disabled
            POSITION p = lc.GetFirstSelectedItemPosition();
            if(p == NULL) return -1;
            return lc.GetNextSelectedItem(p);

          возвращает -1. При этом CListCtr теряет фокус. Добавлял вызов SetFocus() - не помогло
          А по двойному клику мышкой все работает.
          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
          0 пользователей:


          Рейтинг@Mail.ru
          [ Script execution time: 0,0215 ]   [ 16 queries used ]   [ Generated: 28.03.24, 08:34 GMT ]