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.
Partager