Remplacer le ToolTip d'un Treeview par un Hint
Bonjour,
Je suis sous Delphi 7 Pro et je cherche à remplacer le ToolTip d'un Treeview par hint personnalisé.
Je précise également que j'aimerai éviter l'utilisation de bibliothèque externe.
Sur le message WM_NOTIFY j'ai tenté de provoquer l'affichage du hint.
J'ai également intercepté le CM_HINTSHOW pour vérifier s'il y passait bien.
Les deux uniques méthode de mon treeview dérivé du CustomTreeView :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| procedure TTreeViewEx.WMNotify(var Message: TWMNotify);
var P : TPoint;
HintInfo : THintInfo;
begin
if not(Message.NMHdr.code = TTN_SHOW) then inherited
else
begin
GetCursorPos(P);
HintInfo.HintPos := P;
HintInfo.CursorPos := ScreenToClient(P);
HintInfo.HintMaxWidth := Screen.Width;
HintInfo.HintStr := 'Test';
HintInfo.ReshowTimeout := 0;
HintInfo.HideTimeout := Application.HintHidePause;
HintInfo.HintWindowClass := HintWindowClass;
HintInfo.HintColor := clWhite;
HintInfo.CursorRect := BoundsRect;
HintInfo.HintData := nil;
Perform(CM_HINTSHOW, 0, LongInt(@HintInfo));
end;
procedure TTreeViewEx.CMHintShow(var msg: TCMHintShow);
begin
inherited;
end; |
J'avoue ne pas être tout à fait à l'aise avec les messages mais je pensais que cela suffirai.
Lorsque je passe dans CMHintShow la valeur de msg.HintInfo.HintWindowClass correspond d'ailleurs bien à mon hint personnalisé.
Mais ce n'est pas mon hint personnalisé qui s'affiche.
Edit : j'ai bien remplacé le HintWindowClass au démarrage et mon hint s'affiche très bien sur les autres composants que j'utilise
Où est-ce que j'ai fait une boulette ?
Merci.