Bonjour à tous,
Quand j' "Expand" un item d'un CTreeCtrl, celui-ci se scrolle et met cet item en premier visible.
Comment désactiver ce comportement
Merci d'avance
Bonjour à tous,
Quand j' "Expand" un item d'un CTreeCtrl, celui-ci se scrolle et met cet item en premier visible.
Comment désactiver ce comportement
Merci d'avance
C'est quoi le comportement par défaut qui te déplait ?
Bonjour,
Le comportement par défaut qui me gene est :
Si mon item est au milieu du ctrl celui-ci, une fois "expandé" se retrouve tout en haut du ctrl.j'aimerais qu'il reste à sa place
Merci d'avance
- lire la position du 1er visible avec GetFirstVisibleItem()
- appeler Expand()
- positionner le 1er visible avec SelectSetFirstVisible()
Re bonjour,
La réponse de ram-0000 est correcte mais comment l'utiliser dans une classe dérivé de cTreeCtrl dans le message WM_LBUTTONDOWN ou NM_CLICK
Merci d'avance
En créant une classe "CMyTreeCtrl" qui dérive de CTreeCtrl et en gérant dedans les messages WM_LBUTTONDOWN et NM_CLICK
Bonjour,
Le problèeme est résolu de la manière suivante (extrait)
void CMyTreeCtrl::OnLButtonDown(UINT nFlags, CPoint point)
{
UINT flag ;
HTREEITEM hItem = HitTest (point, &flag) ;
if (hItem == NULL) return ;
if (flag == TVHT_ONITEMBUTTON) {
HTREEITEM hVis = GetFirstVisibleItem () ;
SetRedraw (FALSE) ;
Expand (hItem, TVE_TOGGLE) ;
SelectSetFirstVisible (hVis) ;
SetRedraw () ;
return ;
}
CTreeCtrl::OnLButtonDown(nFlags, point);
}
void CMyTreeCtrl::OnLButtonDblClk(UINT nFlags, CPoint point)
{
CMyTreeCtrl::OnLButtonDown(nFlags, point);
}
Merci pour tout
Encore un dernier effort, il manque :
- une accolade ouvrante dans la fonction OnLButtonDown()
- les balises de code pour rendre ton code plus lisible dans le forum
- et le bouton resolu
C'est pas facile de bien écrire dans un forum mais cela rend la lecture plus aisée pour les autres
De rien !!
Partager