Seite 1 von 1

Pop-Up Menu mit Keyboard ? [erledigt]

Verfasst: Di, 03. Apr 2018 6:53
von AUGE_OHR
moin.

es gibt ja die rechte Maustaste mit einem Menu.
bei Touch muss man länger drauf bleiben damit ein Menu angezeigt wird.

nun frage ich mich wie ich das nur mit dem Keyboard aktivieren kann ?
muss ich dafür "extra" ein Tasten Code einbauen oder gibt es einen "fertigen" Tasten Kombination :?:

Code: Alles auswählen

      oMLE:RbDown  := ; 
         { |mp1, mp2, obj| oMenu:PopUp ( obj, mp1, 2 , ; 
              XBPMENU_PU_DEFAULT + XBPMENU_PU_MOUSE_RBDOWN  ) }

   // workaround : activate with F12
   CASE nEvent == xbeP_Keyboard .and. mp1 == xbeK_F12
      PostAppEvent(xbeM_RbDown,GetAbsPos(),, oMLE)

Re: Pop-Up Menu mit Keyboard ?

Verfasst: Di, 03. Apr 2018 8:48
von Tom
Du kannst oMenu:popup direkt aufrufen, wo auch immer.

Re: Pop-Up Menu mit Keyboard ?

Verfasst: Mi, 04. Apr 2018 0:12
von AUGE_OHR
Tom hat geschrieben: Di, 03. Apr 2018 8:48 Du kannst oMenu:popup direkt aufrufen, wo auch immer.
ok ... aber trotzdem müsste "ich" was machen.

was ich meine :
angenommen man hätte ein App (ohne Source) und hätte nur die OSK Tastatur
... wie komme ich an ein rechte-Maustaste-Menu :?:

Re: Pop-Up Menu mit Keyboard ?

Verfasst: Mi, 04. Apr 2018 5:53
von Martin Altmann
Jimmy,
AUGE_OHR hat geschrieben: Mi, 04. Apr 2018 0:12angenommen man hätte ein App (ohne Source) und hätte nur die OSK Tastatur
... wie komme ich an ein rechte-Maustaste-Menu :?:
dann klickst Du auf Deiner osk auf die selbe Taste, wie auf Deinem normalen Keyboard, die es dort für das PopUp-Menü gibt (bei der osk unten rechts unterhalb der Entf-Taste) 8)

Viele Grüße,
Martin

Re: Pop-Up Menu mit Keyboard ?

Verfasst: Mi, 04. Apr 2018 10:43
von AUGE_OHR
Martin Altmann hat geschrieben: Mi, 04. Apr 2018 5:53 dann klickst Du auf Deiner osk auf die selbe Taste, wie auf Deinem normalen Keyboard, die es dort für das PopUp-Menü gibt (bei der osk unten rechts unterhalb der Entf-Taste) 8)
AHA :idea:
Danke =D>

aber leider funktioniert es (natürlich) nicht "so" einfach dann unter Xbase++ ... wäre ja zu einfach.
also geht es darum den Key Code raus zu finden die bei betätigen der "Context Menu Taste" erzeugt wird

Code: Alles auswählen

#include "APPEVENT.CH"

PROCEDURE MAIN
LOCAL lExit  := .F.
LOCAL nEvent, mp1, mp2,oXbp

   nEvent := xbe_None
   DO WHILE .NOT. lExit
      nEvent := AppEvent( @mp1, @mp2, @oXbp )
      DO CASE
      CASE nEvent == xbeP_Keyboard
           IF mp1 == 27   // ESC
              EXIT
           ELSE
              MSGBOX("keycode "+STR(mp1))
           ENDIF
      OTHERWISE
         oXbp:handleEvent( nEvent, mp1, mp2 )
      ENDCASE         
   ENDDO
RETURN
das Ergebnis : 65629
nun in der appevent.ch nachsehen -> xbeK_CMENU

Code: Alles auswählen

         CASE nEvent == xbeP_Keyboard .AND. mp1 == xbeK_CMENU
            nTransparency := MenuTPZ(hWnd,oDlg,PopAbsPos(oDlg) )