wxDev.fr, le portail francophone consacré à wxWidgets ! ( The french portal for wxWidgets )  
Esp. membre
Recheche rapide



Recherche avancée
Statistiques
Membres inscrits :2359

Membres en ligne : 0
Invités en ligne : 3

Valid XHTML 1.0 Transitional

Valid CSS2

Menu forum (navigation):
Pages: 1  
 
Accueil » Accueil forums » Développement C/C++
» Coordonnées de la souris dans un wxTreeCtrl
Conversation (Résolue) : Coordonnées de la souris dans un wxTreeCtrl
23-06-2010 16:54:39  Coordonnées de la souris dans un wxTreeCtrl #1
yannp (Membre)
Inscrit le : 02-06-2010
Messages: 61
Snippets: 0
Tutoriels: 0
Hors ligne
Bonjour,

Voici mon problème :

j'ai un wxTreeCtrl dans lequel j'ai connecté un évènement pour un menu contextuel.
Ca marche, sauf que les coordonnées qu'il me renvoit sont fausses. J'ai l'impression que l'origine correspond à l'écran (en haut à gauche) et pas à mon wxTreeCtrl!!!!


Code:

 
void winComposition::OnContextMenu(wxContextMenuEvent& event)
{
    wxPoint pt;
    wxMenu  menu(0);
 
    pt= event.GetPosition();
    wxLogMessage(wxT("OnContextMenu at screen coords (%i, %i)"), pt.x, pt.y);
 
 

Si quelqu'un peut m'aider !!! merci d'avance.

Yann

Dernière modification par yannp (23-06-2010 16:57:45)

23-06-2010 17:14:23  Re: Coordonnées de la souris dans un wxTreeCtrl #2
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1375
Snippets: 25
Tutoriels: 6
Site web
Hors ligne
Salut.

J'ai eut le même problème récemment (pour le double-clic sur un élément).
Je l'ai résolu de la façon suivante :

Code wxWidgets:

wxPoint pt=myTreeCtrl->ScreenToClient(wxGetMousePosition());


En fait, je crois que les coordonnées stockées dans le wxEvent sont données par rapport à la zone cliente de la fenêtre.

@+
Xav'

Le nouveau portail wxWidgets francophone : www.wxdev.fr
Ben en fait, vous y êtes déjà...
23-06-2010 18:39:31  Re: Coordonnées de la souris dans un wxTreeCtrl #3
Sem (Membre)
Inscrit le : 31-05-2008
Messages: 64
Snippets: 0
Tutoriels: 0
Hors ligne
bonjour,
à noter que souvent dans un treectrl, c'est plus cet évenement la dont on a besoin :

Code wxWidgets:

EVT_TREE_ITEM_RIGHT_CLICK(TREECTRL_ID,winComposition::OnItemRightClick)
 
...
 
 
void winComposition::OnItemRightClick(wxTreeEvent& event)
{
    wxTreeItemId itemId = event.GetItem(); // Récupère l'id de l'item cliqué
 
    // Récupère la position
    wxPoint pos = myTreeCtrl->ScreenToClient(wxGetMousePosition());
 
    ShowContextMenu(pos, itemId);
 
}


Enfin je sais pas ce que tu veux faire exactement, c'est juste pour information,
Sem

Dernière modification par Sem (23-06-2010 19:13:56)

24-06-2010 07:58:19  Re: Coordonnées de la souris dans un wxTreeCtrl #4
yannp (Membre)
Inscrit le : 02-06-2010
Messages: 61
Snippets: 0
Tutoriels: 0
Hors ligne
Ok Nickel, ca marche !!!

Merci

Yann
Menu forum (navigation):
Pages: 1  
 
Accueil » Accueil forums » Développement C/C++
» Coordonnées de la souris dans un wxTreeCtrl