CMenu::TrackPopupMenu
Affiche un menu contextuel flottant à l'emplacement spécifié et suivre la sélection des éléments dans le menu contextuel.
BOOL TrackPopupMenu(
UINT nFlags,
int x,
int y,
CWnd* pWnd,
LPCRECT lpRect = 0
);
Paramètres
nFlags
Spécifie des indicateurs d'écran position et de position de la souris. Consultez TrackPopupMenu pour une liste des balises disponibles.x
Spécifie la position horizontale dans les coordonnées d'écran du menu contextuel. Selon la valeur du paramètre d' nFlags , le menu peut être aligné à gauche, aligné à droite, ou centré par rapport à cette position.y
Spécifie la position verticale dans les coordonnées d'écran du haut du menu sur l'écran.pWnd
Identifie la fenêtre qui possède le menu contextuel. Ce paramètre ne peut pas être NULL, même si la balise de TPM_NONOTIFY est spécifiée. Cette fenêtre reçoit tous les messages de WM_COMMAND le menu. Dans les versions de Windows 3,1 et versions ultérieures, la fenêtre ne reçoit pas de messages de WM_COMMAND jusqu'à ce qu' TrackPopupMenu retourne. Dans windows 3,0, la fenêtre reçoit des messages de WM_COMMAND avant qu' TrackPopupMenu retourne.lpRect
Ignoré.
Valeur de retour
Cette méthode retourne le résultat de l'appel TrackPopupMenu dans Kit de développement logiciel Windows.
Notes
Un menu contextuel flottant peut apparaître sur l'écran.
Exemple
// The code fragment shows how to get the File menu from the
// application window and displays it as a floating popup menu
// when the right mouse button is clicked in view.
// CMdiView is a CView-derived class.
void CMdiView::OnRButtonDown(UINT nFlags, CPoint point)
{
CView::OnRButtonDown(nFlags, point);
CMenu* menu_bar = AfxGetMainWnd()->GetMenu();
CMenu* file_menu = menu_bar->GetSubMenu(0);
ASSERT(file_menu);
ClientToScreen(&point);
file_menu->TrackPopupMenu(TPM_LEFTALIGN |TPM_RIGHTBUTTON, point.x,
point.y, this);
}
Configuration requise
Header: afxwin.h