accès aux groupes de discussion, consultation et publication d'articles, recherche de "newsgroups"...
membres, identifiez-vous
é-mail Mot de passe
nouveau ? mot de passe oublié ?
Chargement... Chargement en cours...

Groupes français belges canadiens suisses internationaux Nétiquette
Échangez opinions et commentaires dans les forums de discussion.

Re: Renommer un noeud d'un treeview

 [  Nouvelle Discussion Nouvelle discussion  |  Répondre au groupe Répondre au groupe  |  fr.comp.os.ms-windows.programmation ] 

Retour : Accueil du site fr comp os ms-windows programmation   charte stats de ce groupe


  Sujet:   Re: Renommer un noeud d'un treeview  
 De: casto...@club-internet.fr (Christian ASTOR)
 Groupes: fr.comp.os.ms-windows.programmation
 Organisation: http://groups.google.com
 Date: 19. Sep 2008, 09:47:49
 References: 1
On 19 sep, 16:08, XWindoo <khan.temu...@gmail.com> wrote:
> Bonjour à tous,
>
> Pour renommer un noeud d'un treeview, j'ai utilisé le style
> TVS_EDITLABELS qui permet comme son nom l'indique, d'éditer
> directement le label dans le treeview.
> Je me suis heurté à un premier problème : lorsqu'on édite un label, et
> que l'on clique ailleurs pour terminer l'édition, c'est l'ancien texte
> qui remplace celui qu'on viens de taper. Pour résoudre ce problème, au
> niveau du code, j'ai intercepté le message TVN_ENDLABELEDIT et fais :
>
> Code C++ :
> TreeView_SetItem(hTreeView, ((LPNMTVDISPINFO)lParam)->item);
>
> pour remplacer l'ancien texte par le nouveau.
> Est-ce la meilleur façon de procéder ?
>
> D'autre part, lors de l'édition, l'appui sur les touches entrer et
> échap n'a aucun effet, ni pour annuler ni pour valider l'édition.

Ce n'est pas normal (si pas dans Dialog Box (DWLP_MSGRESULT)...)
Pour un TreeView dans une fenêtre classique, par ex =>

case WM_NOTIFY:
{
	LPNMHDR pnmh ((LPNMHDR)lParam);
	switch (pnmh->code)
	{
		case TVN_ENDLABELEDIT:
		{
			TV_DISPINFO *ptv = (TV_DISPINFO*) pnmh;
			if (ptv->item.pszText != NULL)
			{
				TV_SetItemText(hWnd, ptv->item.hItem, ptv->item.pszText);
				return TRUE;
			}
		}
		break;
	}
	return 0;
}
break;

avec :

BOOL TV_SetItemText(HWND hWndTV, HTREEITEM hItem, char *sText)
{
	TV_ITEM tvi;
	tvi.hItem = hItem;
	tvi.mask = TVIF_TEXT;
	tvi.pszText = sText;
	return (TreeView_SetItem(hWndTV, &tvi) != -1);
}


DateSujet  Auteur
19.09.
* Renommer un noeud d'
XWindoo
19.09.
`*   Re: Renommer un noeud d'
Christian ASTOR
19.09.
 `* Re: Renommer un noeud d'
XWindoo
19.09.
  `- Re: Renommer un noeud d'
Christian ASTOR
Groups Explorer contact votre avis comment ça marche? rechercher un groupe suggérer un groupe abuse accueil du site   Imprimer cette page   Envoyer cette page à un(e) ami(e)
Free counter and web stats