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 Delphi : Sélectionner tout - Visualiser dans une fenêtre à part
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.