CTreeCtrl Doppelklick

  • #1
P

Paulchen29

Mitglied
Themenersteller
Dabei seit
04.03.2006
Beiträge
8
Reaktionspunkte
0
Hi zusammen,

ich schon wieder!  :)

Habe ein kleines Problem mit dem CTreeCtrl. Hab schon wie ein Wilder gesucht, aber leider nix gefunden.

Folgendes möchte ich gerne lösen:

Ich habe ein CTree erstellt mit einem Knoten und mehreren Kindern. Wenn der User nun sich einen Eintrag auswählt, möchte ich, daß der ausgewählte Punkt in eine Tabelle eingetragen wird.

Ich habe nun folgendes Problem:

Der Eintrag soll nur ausgewählt werden, wenn der User einen Doppelklick gemacht hat und der ausgewählte Eintrag ein Kind ist.

Weiss jemand von Euch vielleicht ein gutes Tutorial, in dem sowas erklärt wird. Oder kann mir jemand von Euch die Lösung posten.

Vielen Dank im Voraus
 
  • #2
Sorry, ich habe Deinen Beitrag nicht früher gesehen.

So könnte es klappen (Doppelklick-Handler und - falls noch nicht vorhanden - CTreeCtrl-Control-Variable generieren lassen):

Code:
void CDeinIrgendwas::TreeCtrlDblClick(NMHDR *pNMHDR, LRESULT *pResult)
{
  CPoint ptHit;
  GetCursorPos(&ptHit);
  m_treeCtrl.ScreenToClient(&ptHit);

  UINT nHitFlags;
  HTREEITEM hHitItem = m_treeCtrl.HitTest(ptHit, &nHitFlags);

  if(hHitItem != NULL && nHitFlags == TVHT_ONITEMLABEL) {    
    if(m_treeCtrl.GetParentItem(hHitItem) != NULL)
      MessageBox(m_treeCtrl.GetItemText(hHitItem));
  }
  *pResult = 0;
}

Statt dem Aufruf von MessageBox dann natürlich der Eintrag in die Tabelle.

Der Eintrag soll nur ausgewählt werden, wenn der User einen Doppelklick gemacht hat und der ausgewählte Eintrag ein Kind ist.

Willst Du auch, dass der Parent-Eintrag gar nicht selektiert werden kann? Das wäre das vielleicht wegen der Keyboard-Navigation nicht so gut. Außerdem müsste man da imho mehr beachten, als auf den ersten Blick ersichtlich ist.

BTW: Ist der Einsatz eines Tree-Controls sinnvoll, wenn Du nur einen Knoten mit mehreren Subitems hast (falls das keine temporäre Situation ist)?
 
Thema:

CTreeCtrl Doppelklick

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.839
Beiträge
707.962
Mitglieder
51.492
Neuestes Mitglied
Janus36
Oben