PopupMenu-Cursor



  • Hallo,
    ich benutze in meinem Fenster verschiedene Cursor, je nach eingeschaltetem Werkzeug. Ein Klick mit dem linken Mausbutton öffnet ein PopupMenu:

    m_menuRightButton.TrackPopupMenu( TPM_LEFTALIGN, point.x, point.y,this);
    

    Leider entspricht der Cursor auf dem PopupMenu-Fenster meinem eingestellten Cursor der Fensterklasse, was nicht gerade schön ist. Wie kann ich dem Popup-Fenster sagen, das es den normalen Pfeil-Cursor verwendet.
    Gruss,
    MiP


  • Mod

    Dein WM_SETCURSOR Handler ist falsch.

    Lies mal die Doku zu WM_SETCURSOR:
    http://msdn2.microsoft.com/en-us/library/ms648382.aspx

    The high-order word of lParam is zero when the window enters menu mode.



  • Ja, hat geholfen, danke.
    Setze jetzt meine speziellen Cursor nur dann, wenn sich der Cursor im Client-Bereich befindet. Damit haben jetzt auch die Scrollbars wieder den Pfeil-Cursor, ebenso das PopupMenu. Worauf man so achten muss!

    BOOL M2dView::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) {
    	BOOL b = CWnd::OnSetCursor(pWnd, nHitTest, message);
    	if (nHitTest==HTCLIENT) ::SetCursor(m_hCursor);
    	return b;
    }
    

    MiP


Anmelden zum Antworten