C++ 6 - TreeView

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...
Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

C++ 6 - TreeView

Сообщение Amed » 16.08.2005 (Вт) 15:36

Как отловить даблклик на TreeView? Не могу поймать никакое сообщение в отношении TreeView (IDC_TREE_DEVICES).

NOTE: Всё в проекте создаётся ручками, без MFC.

Кусочек кода:
Больше дать, думаю, не смогу. Проект весьма велик.

Код: Выделить всё
void TSystemsPage::DefChildProc(RTMessage Msg)
{
//Мое предположение
   switch (Msg.Message)
   {
         case WM_RBUTTONDOWN:
         {
            MessageBox(HWindow,"ss","ss",0); //Пришло сообщение
         }
   }
         }
//Тут всё заканчивается
   switch(Msg.WP.Lo)
   {
      case IDC_BTN_SETTINGS:
         {
            HTREEITEM TreeItem;
            ZeroMemory( &TreeItem, sizeof(HTREEITEM));
            TreeItem = (HTREEITEM)SendMessage( hTreeWnd, TVM_GETNEXTITEM, (WPARAM)(UINT)TVGN_CARET, NULL);
            {
               TVITEM ItemDesc;
               ZeroMemory( &ItemDesc, sizeof( TVITEM ));
               ItemDesc.hItem  = TreeItem;
               ItemDesc.mask  = TVIF_PARAM | TVIF_TEXT;
               SendMessage( hTreeWnd, TVM_GETITEM, NULL, (LPARAM)&ItemDesc );
               {
                  CTemplate* pObj = (CTemplate*)ItemDesc.lParam;
                  if( pObj )
                  {
                     pObj->SetOptions(HWindow,0);
                  }
                  else
                     MessageBox(HWindow, "This item have not options", "Information", MB_OK | MB_ICONINFORMATION);
               }

            }
         }
         return;

      case IDC_BTN_ADD:
      {
         HTREEITEM TreeItem;
         ZeroMemory( &TreeItem, sizeof(HTREEITEM));
         TreeItem = (HTREEITEM)SendMessage( hTreeWnd, TVM_GETNEXTITEM, (WPARAM)(UINT)TVGN_CARET, NULL);
         {
            TVITEM ItemDesc;
            ZeroMemory( &ItemDesc, sizeof( TVITEM ));
            ItemDesc.hItem  = TreeItem;
            ItemDesc.mask  = TVIF_PARAM | TVIF_TEXT;
            SendMessage( hTreeWnd, TVM_GETITEM, NULL, (LPARAM)&ItemDesc );

            int nRes = -1;
            if(IDOK == ExecAllSystemsDialog(HWindow, &nRes ))
            {
               CTemplate* pObj = AddModelerObject(lpChannelList,lpSystemList, (UINT)nRes);
               if(!pObj)
               {
                  MessageBox(HWindow, "Unable to add the component", "Error", MB_OK | MB_ICONSTOP);
               }
               else
                  pObj->LoadInitials(lpszSCLogFile);

            }

         }
      }
      break;
      
      case IDC_BTN_REMOVE:
      {
         HTREEITEM TreeItem;
         CTemplate* pObj = NULL;
         ZeroMemory( &TreeItem, sizeof(HTREEITEM));
         TreeItem = (HTREEITEM)SendMessage( hTreeWnd, TVM_GETNEXTITEM, (WPARAM)(UINT)TVGN_CARET, NULL);
         {
            TVITEM ItemDesc;
            ZeroMemory( &ItemDesc, sizeof( TVITEM ));
            ItemDesc.hItem  = TreeItem;
            ItemDesc.mask  = TVIF_PARAM | TVIF_TEXT | TVIF_HANDLE;
            SendMessage( hTreeWnd, TVM_GETITEM, NULL, (LPARAM)&ItemDesc );
            pObj = (CTemplate*)ItemDesc.lParam;
         }
         DeleteModelerObjectByPointer( lpSystemList, pObj );
      }
      break;
      default:;
   }
   ClearTree();
   RefreshTree();
   
   MTSheetPage::DefChildProc(Msg);
}

void TSystemsPage::DefWndProc(RTMessage Msg)
{
   switch(Msg.Message)
   {
      case WM_CLOSE:
         {
         }
      default:;
   }
   MTSheetPage::DefWndProc(Msg);
}


DefWndProc обрабатывает сообщения окна, DefChildProc - сообщения находящихся на нём /окне/ фиговин - кнопочек и т.д.

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 16.08.2005 (Вт) 16:22

UPDATE: Необходимо добавить отработку NM_CLICK.


Вернуться в Народный треп

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot и гости: 73

    TopList  
cron