Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2374 connectés 

 


Dernière réponse
Sujet : [MFC] Menu contextuel sur ListBox
VisualC++ Salut,
desole ca donne plutot ca (car l event MOUSEDOWN est envoye mais a ta listbox, faudrait l intercepter a son niveau mais faut utiliser une classe derivee pour ce faire ou alors la creer mais dynamiquement) donc comme l a dit la viper, tu peux^via le oncontextmenu (mais c est en screen coordinates les valeurs)
 
void CMyDlg::OnContextMenu(CWnd* pWnd, CPoint point)  
{
 CRect rect;
 m_ListBox.GetWindowRect(rect);
 
 if (rect.PtInRect(point) == 0) {
  TRACE ("rclick not on the listbox\n" );
 }
 else {
  TRACE ("rclick on the listbox\n" );
 }  
}

 

[edtdd]--Message édité par VisualC++--[/edtdd]


Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
VisualC++ Salut,
desole ca donne plutot ca (car l event MOUSEDOWN est envoye mais a ta listbox, faudrait l intercepter a son niveau mais faut utiliser une classe derivee pour ce faire ou alors la creer mais dynamiquement) donc comme l a dit la viper, tu peux^via le oncontextmenu (mais c est en screen coordinates les valeurs)
 
void CMyDlg::OnContextMenu(CWnd* pWnd, CPoint point)  
{
 CRect rect;
 m_ListBox.GetWindowRect(rect);
 
 if (rect.PtInRect(point) == 0) {
  TRACE ("rclick not on the listbox\n" );
 }
 else {
  TRACE ("rclick on the listbox\n" );
 }  
}

 

[edtdd]--Message édité par VisualC++--[/edtdd]

antsite up !  :bounce:
antsite Ca marche pas !
void CGServerDlg::OnRButtonDown(UINT nFlags, CPoint point)  
{
 CRect rect;
 m_clients.GetClientRect(rect);
 
 if (rect.PtInRect(point) == 0)
  MessageBeep(MB_OK); //ca marche
 else
  MessageBox("salut" ); //ça marche pas !
 
 CDialog::OnRButtonDown(nFlags, point);
}
 
il détecte bien si la souris est au dessus de la liste mais si elle y est il fait pas l'instruction, à croire que le message WM_RBUTTONDOWN n'est pas envoyé !
antsite merci je vais essayer ça
la viper cherche l'evenement OnContextMenu ...
dans la class wizard..
VisualC++ Dans ton OnRMouseButtonDown
 
CRect rect;
m_Listbox.GetClientRect(rect);
 
if (rect.PtInRect(point) == 0) {
   TRACE ("rclick not on the listbox\n" );
}
else {
   TRACE ("rclick on the listbox\n" );
}
 
point etant un des 2 param du WM_RMOUSBUTTONDOWN

 

[edtdd]--Message édité par VisualC++--[/edtdd]

antsite Salut,
je n'arrive pas à afficher un menu quand je clique droit sur une ListBox. Le problème c'est pas d'afficher le menu ni d'intercepter le RMouseDown mais c'est de savoir si le curseur est au dessus de la liste ! Comment faire ?
merci
  ANT

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)