BUG: Suite à [MFC] J'ai un CTreeView fainéant, solution bizarre.
4 réponses
Patrick Brunet
Bonsoir.
Dans le post précédent, j'expliquais que je rencontrais un comportement
incompréhensible d'un CTreeView pourtant utilisé conformément à la doc et à
tous les tutoriaux que j'ai pu trouver :
- le SelectDropTarget() n'a aucun effet,
- bien que le Tree soit largement bien rempli, la scrollbar verticale
n'apparaît pas et bien sûr même avec le clavier la partie de l'arbre qui
déborde par le bas est inaccessible.
J'ai finalement trouvé comment contrer ce problème :
- l'arbre doit être construit sans déployer le noeud racine,
- le noeud racine doit alors être déployé par une action clavier [flèche
droite] (par une expansion logicielle ou en cliquant sur le bouton [+], il
se déploie mais le problème persiste).
Ainsi déployé par action clavier, le CTreeView devient fonctionnel : le
SelectDropTarget() fonctionne et la scrollbar aussi.
Donc après remplissage, je lui fais désormais un SendMessage( ...,
WM_KEYDOWN, VK_RIGHT, NULL);
Beuâââârk!, pas vrai ?
Pour info, il ne contient que 500 items environ, pour une profondeur max de
15 items environ.
Auriez-vous une explication à ce phénomène ? Le SendMessage c'est pas
vraiment propre, même si ça marche. Je travaille avec VC++ 6.0 Pro, sous
Win98se.
"Patrick Brunet" <Patrick.Brunet @ cned.fr> a écrit dans le message de news:3f4625a6$0$26434$
Bonsoir.
Dans le post précédent, j'expliquais que je rencontrais un comportement incompréhensible d'un CTreeView pourtant utilisé conformément à la doc et
à
tous les tutoriaux que j'ai pu trouver :
- le SelectDropTarget() n'a aucun effet, - bien que le Tree soit largement bien rempli, la scrollbar verticale n'apparaît pas et bien sûr même avec le clavier la partie de l'arbre qui déborde par le bas est inaccessible.
J'ai finalement trouvé comment contrer ce problème :
- l'arbre doit être construit sans déployer le noeud racine, - le noeud racine doit alors être déployé par une action clavier [flèche droite] (par une expansion logicielle ou en cliquant sur le bouton [+], il se déploie mais le problème persiste).
Ainsi déployé par action clavier, le CTreeView devient fonctionnel : le SelectDropTarget() fonctionne et la scrollbar aussi.
Donc après remplissage, je lui fais désormais un SendMessage( ..., WM_KEYDOWN, VK_RIGHT, NULL);
Beuâââârk!, pas vrai ?
Pour info, il ne contient que 500 items environ, pour une profondeur max
de
15 items environ.
Auriez-vous une explication à ce phénomène ? Le SendMessage c'est pas vraiment propre, même si ça marche. Je travaille avec VC++ 6.0 Pro, sous Win98se.
"Patrick Brunet" <Patrick.Brunet @ cned.fr> a écrit dans le message de
news:3f4625a6$0$26434$626a54ce@news.free.fr...
Bonsoir.
Dans le post précédent, j'expliquais que je rencontrais un comportement
incompréhensible d'un CTreeView pourtant utilisé conformément à la doc et
à
tous les tutoriaux que j'ai pu trouver :
- le SelectDropTarget() n'a aucun effet,
- bien que le Tree soit largement bien rempli, la scrollbar verticale
n'apparaît pas et bien sûr même avec le clavier la partie de l'arbre qui
déborde par le bas est inaccessible.
J'ai finalement trouvé comment contrer ce problème :
- l'arbre doit être construit sans déployer le noeud racine,
- le noeud racine doit alors être déployé par une action clavier [flèche
droite] (par une expansion logicielle ou en cliquant sur le bouton [+], il
se déploie mais le problème persiste).
Ainsi déployé par action clavier, le CTreeView devient fonctionnel : le
SelectDropTarget() fonctionne et la scrollbar aussi.
Donc après remplissage, je lui fais désormais un SendMessage( ...,
WM_KEYDOWN, VK_RIGHT, NULL);
Beuâââârk!, pas vrai ?
Pour info, il ne contient que 500 items environ, pour une profondeur max
de
15 items environ.
Auriez-vous une explication à ce phénomène ? Le SendMessage c'est pas
vraiment propre, même si ça marche. Je travaille avec VC++ 6.0 Pro, sous
Win98se.
"Patrick Brunet" <Patrick.Brunet @ cned.fr> a écrit dans le message de news:3f4625a6$0$26434$
Bonsoir.
Dans le post précédent, j'expliquais que je rencontrais un comportement incompréhensible d'un CTreeView pourtant utilisé conformément à la doc et
à
tous les tutoriaux que j'ai pu trouver :
- le SelectDropTarget() n'a aucun effet, - bien que le Tree soit largement bien rempli, la scrollbar verticale n'apparaît pas et bien sûr même avec le clavier la partie de l'arbre qui déborde par le bas est inaccessible.
J'ai finalement trouvé comment contrer ce problème :
- l'arbre doit être construit sans déployer le noeud racine, - le noeud racine doit alors être déployé par une action clavier [flèche droite] (par une expansion logicielle ou en cliquant sur le bouton [+], il se déploie mais le problème persiste).
Ainsi déployé par action clavier, le CTreeView devient fonctionnel : le SelectDropTarget() fonctionne et la scrollbar aussi.
Donc après remplissage, je lui fais désormais un SendMessage( ..., WM_KEYDOWN, VK_RIGHT, NULL);
Beuâââârk!, pas vrai ?
Pour info, il ne contient que 500 items environ, pour une profondeur max
de
15 items environ.
Auriez-vous une explication à ce phénomène ? Le SendMessage c'est pas vraiment propre, même si ça marche. Je travaille avec VC++ 6.0 Pro, sous Win98se.
Merci,
Cordialement,
Patrick BRUNET
patrox
J'oubliai, suivi d'un UpdateWindow( hwndTreeView );
pat
J'oubliai, suivi d'un UpdateWindow( hwndTreeView );
J'oubliai, suivi d'un UpdateWindow( hwndTreeView );
pat
Patrick BRUNET
Bonsoir.
Tu te doutes bien que j'ai essayé de forcer le retraçage par tous les moyens. Ca se retrace, mais en l'état, sans résolution du problème.
C'est comme si le TreeCtrl ne faisait pas ses redimensionnements et autres calculs internes (scrollbars, etc.) tant qu'il n'a pas été déployé une fois au moins de la manière décrite !
Merci, cordialement,
PB
Bonsoir.
Tu te doutes bien que j'ai essayé de forcer le retraçage par tous les
moyens.
Ca se retrace, mais en l'état, sans résolution du problème.
C'est comme si le TreeCtrl ne faisait pas ses redimensionnements et autres
calculs internes (scrollbars, etc.) tant qu'il n'a pas été déployé une fois
au moins de la manière décrite !
Tu te doutes bien que j'ai essayé de forcer le retraçage par tous les moyens. Ca se retrace, mais en l'état, sans résolution du problème.
C'est comme si le TreeCtrl ne faisait pas ses redimensionnements et autres calculs internes (scrollbars, etc.) tant qu'il n'a pas été déployé une fois au moins de la manière décrite !
Merci, cordialement,
PB
patrox
Je vois, j'ai le meme probleme avec les toolbars
je le resoud comme ca : SendMessage( hwndToolBar , WM_SIZE ,0,0 ) ;
je ne sais pas pourquoi ca marche, mais ca marche :) pat.
Je vois, j'ai le meme probleme avec les toolbars
je le resoud comme ca :
SendMessage( hwndToolBar , WM_SIZE ,0,0 ) ;
je ne sais pas pourquoi ca marche, mais ca marche :)
pat.