J'ai un objet de contrôle d'arbre créé en utilisant la classe MFC CTreeCtrl. Le contrôle d'arbre doit prendre en charge le changement de nom. Lorsque je clique sur l'un des éléments de l'arborescence, l'événement TVN_SELCHANGED est appelé à partir duquel je peux obtenir l'élément sélectionné de l'arborescence comme suit: HTREEITEM h = m_moveListTree.GetSelectedItem(); CString s = m_moveListTree.GetItemText (h);Problème avec TVN_SELCHANGED sur l'objet CTreeCtrl
Cependant, lorsque je clique avec le bouton droit de la souris sur un élément de l'arborescence, je n'obtiens aucun événement TVN_SELCHANGED et, par conséquent, mon élément sélectionné reste le même par clic gauche. Ce problème est à l'origine suivante: 1) l'utilisateur leftclicks sur le point A 2) utilisateur clique droit sur le point B et dit renommer 3) Étant donné que l'élément sélectionné est encore le changement de nom est l'application pour le point A.
S'il vous plaît aider dans la résolution de problème.
-Praveen
Salut Jussij, Merci pour la réponse. Où puis-je trouver la classe xPoint? ou Comment convertir l'oiint de la classe CPoint en fenêtre coordonnée –
Utilisez simplement CPoint, puis appelez ScreenToClient(). – ChrisN
Salut Chris, Merci pour la réponse. J'ai codé comme ceci après avoir obtenu le pt: LPPOINT p = new tagPOINT; p-> x = pt.x; p-> y = pt.y; ScreenToClient (p); pt.x = p-> x; pt.y = p-> y; HTREEITEM hItem = m_moveListTree.HitTest (pt); Mais l'objet pointé est faux. Que devrais-je faire ? –