Membres inscrits :668
Membres en ligne : 0
Invités en ligne : 9


|
| Conversation (Résolue) : Relever la position du dernier caractère, dans un wxStyledTextCtrl |
Claude (Nouveau membre)
Inscrit le : 16-02-2011
Messages: 8
Snippets: 0
Tutoriels: 0
Hors ligne |
Bonjour,
J'essaie en vain (c'est pour cela que je fais appel à vous...) de positionner dans un wxStyledTextCtrl, à la dernière lettre tapée, un PopupMenu.
Le Popup, pas de problème, mais je n'arrive pas à relever la position du dernier caractère, que ce soit en (x, y) ou en (point).
Quelqu'un aurait-il une idée?
Une piste à explorer?
Google, qui d'habitude m'est d'une grande utilité, est dans ce cas précis complètement ...wx.NULL...
Tout ce que je réussis à obtenir, c'est la position de la souris... mais ce n'est pas ça que je recherche. Merci d'avance pour vos réponses et l'aide que vous pourrez m'apporter.
Claude
| |
|
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1191
Snippets: 23
Tutoriels: 6
Site web
Hors ligne |
Hello. Après une première recherche (rapide je l'avoue) dans la doc, je n'ai pour l'instant rien trouvé.
Par contre, il m'est venu une idée : je suppose que tu veux afficher le menu lors d'une frappe au clavier (généralement, lorsque c'est à partir d'un clic droit, le menu est censé s'afficher à la position de la souris).
As-tu essayé de ne pas spécifier les coordonnées d'apparition du menu, pour voir ce que ça donne ?
C'est juste une idée en passant. Je vais quand même continuer à chercher un peu pour traduire la position du "caret" en coordonnées x/y.
@+ Xav'
Edit : As-tu testé l'appel à "GetCaretPosition", puis à "GetCaretPositionForIndex" avec le résultat de la précédente comme premier paramètre ?
Dernière modification par Xaviou (11-08-2011 22:11:03)
|
Le nouveau portail wxWidgets francophone : www.wxdev.fr Ben en fait, vous y êtes déjà...
|
Claude (Nouveau membre)
Inscrit le : 16-02-2011
Messages: 8
Snippets: 0
Tutoriels: 0
Hors ligne |
Salut Xaviou et grand merci pour ta réponse.
Xaviou a écrit:je suppose que tu veux afficher le menu lors d'une frappe au clavier Oui, c'est pour afficher le menu lors d'une frappe au clavier.
Xaviou a écrit:As-tu essayé de ne pas spécifier les coordonnées d'apparition du menu, pour voir ce que ça donne ? Oui, le menu s'affiche sur le pointeur de la souris. C'est justement en spécifiant un wxPoint(x, y) que l'on change la position d'affichage du menu.
Xaviou a écrit:As-tu testé l'appel à "GetCaretPosition", puis à "GetCaretPositionForIndex" avec le résultat de la précédente comme premier paramètre Oups! je ne peux pas, car: 1/ Ces deux méthodes font parties de la classe wxRichTextCtrl et moi j'utilise wxStyledTextCtrl. 2/ Je tourne ( toujours ) sous wxLua et cette classe ( wxRichTextCtrl ) n'est pas répertoriée par ce "wrapper".
En résumé, ( car peut-être y-a-t-il une autre solution à celle que j'envisage ) je cherche à afficher dans un IDE, ( écrit en Lua avec wxWidgets ) une fenêtre wxMenu à la fin d'un mot-clé...
Merci et @++
Claude
| |
|
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1191
Snippets: 23
Tutoriels: 6
Site web
Hors ligne |
Hello. Claude a écrit:Ces deux méthodes font parties de la classe wxRichTextCtrl et moi j'utilise wxStyledTextCtrl Alors, tu peux essayer avec "GetCurrentPos", puis "PointFromPosition".
@+ Xav'
|
Le nouveau portail wxWidgets francophone : www.wxdev.fr Ben en fait, vous y êtes déjà...
|
Claude (Nouveau membre)
Inscrit le : 16-02-2011
Messages: 8
Snippets: 0
Tutoriels: 0
Hors ligne |
Que c'est beau la programmation, quand tout fonctionne comme on le souhaite... 
Salut Xaviou.
Encore un grand merci à toi pour ton aide. 
Ce qu'il me manquait, c'était la méthode " PointFromPosition " que je n'avais pas repérée dans la liste et ce n'est pourtant pas faute de l'avoir parcourue dans tous les sens... comme quoi!
Mais c'est Super! C'est exactement ce que je voulais faire, je vais enfin pouvoir continuer mon programme.
Et pour ceux que ça intéresse:( Codé avec wxLua )
Code: editor = wxstc.wxStyledTextCtrl(frame, -1, wx.wxDefaultPosition, wx.wxDefaultSize, wx.wxSUNKEN_BORDER) pos = editor:GetCurrentPos() x = editor:PointFromPosition(pos) Et il suffit de rajouter le point "x" au PopupMenu, pour le positionner au dernier caractère du mot-clé. menu = wx.wxMenu() editor:PopupMenu(menu, wx.wxPoint(x))
@++
Claude
| |
|
|