Salut à tous,
Voila mon pb, je développe qd j'ai le temps au boulot une petite application. Celle ci va creer une icone dans le systray ( tres classique) et j'utilise un popupmenu sur celui-ci.
J'ai trouvé un composant sur un site (je sais plus où), pour me permettre de customiser ces menus. vous trouverez le source de ce code à l'adresse
[ Lien ] . Seulement quelques petits problèmes sont apparrus et sur lesquels je butte (et sur les puces de l'editeur de message CS qui déconne un peu):
Tout d'abord j'aimerais aligner correctement le glyph qui sert au sous menu. En effet celui-ci est systématiquement trop haut. Dans l'absolu à vrai dire j'aimerais mettre une image de mon choix à la place de ce glyph. Comment qu'on fait ? quand on regarde un menu classique, il y a ce décalage, pas sur les menu XP. j'ai pour info essayer de dessiner un bitamp sur le canvas de l'item mais ce dernier est toujours écrasé par le glyp par défaut, ce qui est un peu surprenant quand on passe par advanceddrawitem.
Ensuite j'aimerais que les bordures s'affichent comme un menu de type XP, c'est à dire en enlevant l'effet 3d d'un menu standard. dans le composant il y a un bout de code en commentaire qui le fait mais celui-ci ne marche qu'au premier niveau de mon menu (en prenant soin de mettre l'animation à [manone]), pour les sous menu il y a un bug. tant que la souris n'est pas passé sur un sousmenu celui-ci reste en 3d. je vous laisse tester le composant pour que vous vous aperceviez du problème.
Enfin comme le sous menu apparait a coté du systray les sous menus sont affichés à gauche et non pas à droite comme la plupart du temps. résultat : pour une raison que j'ignore, au moment de la destruction du sous menus, delphi ou window ou je ne sais qui redessine le menu principal en 3D sans se soucier de ce que j'écris dans le composant. je penche pour la mise en place d'une procédure d'interception d'un message mais pour l'instant ca n'a rien donné. d'ailleurs il est marrant de constater que dans l'ide, les gars qui ont écrit le composant ACTNPOPUP , on eu le même problème et qu'il n'ont pas réussi à le résoudre ( tout du moins maladroitement ).
Bref il s'agit de problèmes assez compliqués et sur lequel je n'ai pas encore trouvé de solution. je vous sollicite donc pour m'aider, pas forcément au niveau du code mais pour m'indiquer les pistes qui vous semblent les plus intéressantes.
merci par avance de vos réponses (constructives évidemment).
Tschussss