Aktuelle Zeit: 05.12.2020 00:35

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Strg + Button-Druck
BeitragVerfasst: 23.10.2020 08:46 
Offline
Benutzeravatar

Registriert: 15.11.2010 10:56
Hallo Leute,

möchte gerne mit dem Drücken der Taste Strg + Button Druck eine Funktion auslösen!
Zitat:
AddKeyboardShortcut(0, #PB_Shortcut_Control | #PB_Shortcut_F, 15)

Dient zum Auslösen von Strg+F, wie ist das mit Button oder geht das nicht?

Gruss ... Velindos!

_________________
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.43 LTS (32/64-Bit)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Strg + Button-Druck
BeitragVerfasst: 23.10.2020 09:13 
Offline
Benutzeravatar

Registriert: 10.09.2004 09:59
#PB_Shortcut_Print ?

_________________
Link tot?
Ändere h3x0r.ath.cx in hex0rs.coderbu.de und alles wird gut.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Strg + Button-Druck
BeitragVerfasst: 23.10.2020 11:48 
Offline
Benutzeravatar

Registriert: 15.11.2010 10:56
Hallo,

mal ein Beispiel wie es sein könnte!

Code:
; Strg + Button-Druck

Enumeration
  #Wnd
  #Btn
  #ESC_Velindos
EndEnumeration
; -------
OpenWindow(#Wnd, 100, 200, 195, 260, "PureBasic Window", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget)
ButtonGadget(#Btn,10,10,180,250,"Strg + LCLK Mouse")
AddKeyboardShortcut(#Wnd,  #PB_Shortcut_Control |#PB_Shortcut_F, #ESC_Velindos)
; Hier sollte er mit Button auslösen
AddKeyboardShortcut(#Wnd,  #PB_Shortcut_Control |#Btn, #ESC_Velindos)
; -------
;-REPEAT
Define EventID
Repeat
  EventID = WaitWindowEvent()
  Select EventID
    Case #PB_Event_CloseWindow
      ;{ Event CloseWindow
      End
      ;}
    Case #PB_Event_Menu
      ;{ Event Menu
      Select EventMenu()
        Case #ESC_Velindos
          End
      EndSelect
      ;}
  EndSelect
ForEver
; -------


Funzt aber nicht!

Gruss ... Velindos!

_________________
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.43 LTS (32/64-Bit)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Strg + Button-Druck
BeitragVerfasst: 23.10.2020 12:23 
Offline
Benutzeravatar

Registriert: 10.09.2004 09:59
O.k., ich denke ich hab's gerafft, Du möchtest einen Strg-Click auf einem Button-Gadget abfragen?

Das geht so nicht, das ginge mit ein wenig API
Code:
; Strg + Button-Druck

Enumeration
  #Wnd
  #Btn
  #ESC_Velindos
EndEnumeration
; -------
OpenWindow(#Wnd, 100, 200, 195, 260, "PureBasic Window", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget)
ButtonGadget(#Btn,10,10,180,250,"Strg + LCLK Mouse")
AddKeyboardShortcut(#Wnd,  #PB_Shortcut_Control |#PB_Shortcut_F, #ESC_Velindos)

; -------
;-REPEAT
Define EventID
Repeat
  EventID = WaitWindowEvent()
  Select EventID
    Case #PB_Event_CloseWindow
      ;{ Event CloseWindow
      End
      ;}
    Case #PB_Event_Menu
      ;{ Event Menu
      Select EventMenu()
        Case #ESC_Velindos
          End
      EndSelect
    Case #PB_Event_Gadget
       If EventGadget() = #Btn And GetAsyncKeyState_(#VK_LCONTROL) & $8000
          End
       EndIf
        ;}
  EndSelect
ForEver
; -------

_________________
Link tot?
Ändere h3x0r.ath.cx in hex0rs.coderbu.de und alles wird gut.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Strg + Button-Druck
BeitragVerfasst: 23.10.2020 13:30 
Offline
Benutzeravatar

Registriert: 15.11.2010 10:56
Hallo,
Danke, Super Vorschlag!

Da ich öfters Callback für Button einsetze, habe ich versucht das Ding mit dem Callback, funzt aber nicht!
Code:
; Strg + Button-Druck

Enumeration
  #Wnd
  #ESC_Velindos
EndEnumeration
Global  Btn
Global *gOldEditProc_297
Procedure DplClk_Btn(hWnd, uMsg, wParam, lParam)
  ; *gOldEditProc_297 = SetWindowLongPtr_(GadgetID(Btn), #GWL_WNDPROC, @DplClk_Btn())
  Protected Result
  Select uMsg
    Case #WM_LBUTTONDOWN
      Debug "LEFT!"
    Case #WM_RBUTTONDOWN
      Debug "RIHT!"
     
      Result = 0
    Default
      Result = CallWindowProc_(*gOldEditProc_297, hWnd, uMsg, wParam, lParam)
  EndSelect
  ProcedureReturn Result
EndProcedure
; -------
OpenWindow(#Wnd, 100, 200, 195, 260, "PureBasic Window", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget)
Btn = ButtonGadget(#PB_Any,10,10,180,250,"Strg + LCLK Mouse")
*gOldEditProc_297 = SetWindowLongPtr_(GadgetID(Btn), #GWL_WNDPROC, @DplClk_Btn())
AddKeyboardShortcut(#Wnd,  #PB_Shortcut_Control |#PB_Shortcut_F, #ESC_Velindos)
; -------
;-REPEAT
Define EventID
Repeat
  EventID = WaitWindowEvent()
  Select EventID
    Case #PB_Event_CloseWindow
      ;{ Event CloseWindow
      End
      ;}
    Case #PB_Event_Menu
      ;{ Event Menu
      Select EventMenu()
        Case #ESC_Velindos
          End
      EndSelect
    Case #PB_Event_Gadget
      If EventGadget() = Btn And GetAsyncKeyState_(#VK_LCONTROL) & $8000
        End
      EndIf
      ;}
  EndSelect
ForEver
; -------


Muss ich da noch was Berücksichtigen?

Gruss ... Velindos!

_________________
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.43 LTS (32/64-Bit)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Strg + Button-Druck
BeitragVerfasst: 23.10.2020 14:58 
Offline
Benutzeravatar

Registriert: 10.09.2004 09:59
Preisfrage: Was passiert, wenn man eine 0 aus diesem CallBack zurückgibt?

_________________
Link tot?
Ändere h3x0r.ath.cx in hex0rs.coderbu.de und alles wird gut.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Strg + Button-Druck
BeitragVerfasst: 23.10.2020 16:42 
Offline
Benutzeravatar

Registriert: 15.11.2010 10:56
Hallo HeX0R,

Danke für deinen Tip! Zu deiner Frage, keine Ahnung!

Hab die Sache jetzt so eingearbeitet und das Funzt.
Code:
; Strg + Button-Druck

Enumeration
  #Wnd
  #ESC_Velindos
EndEnumeration
Global  Btn
Global *gOldEditProc_297
Procedure DplClk_Btn(hWnd, uMsg, wParam, lParam)
  ; *gOldEditProc_297 = SetWindowLongPtr_(GadgetID(Btn), #GWL_WNDPROC, @DplClk_Btn())
  Protected Result
  Select uMsg
     
    Case #WM_LBUTTONDOWN
      If GetAsyncKeyState_(#VK_LCONTROL) & $8000
        Debug "STRG + LINKSKLICK auf BUTTON!"
        ; End
      Else
        Debug "LINKSKLICK auf BUTTON!"
      EndIf
     
     
    Case #WM_RBUTTONDOWN
      Debug "RECHTSKLICK auf BUTTON!"
     
      Result = 0
    Default
      Result = CallWindowProc_(*gOldEditProc_297, hWnd, uMsg, wParam, lParam)
  EndSelect
  ProcedureReturn Result
EndProcedure
; -------
OpenWindow(#Wnd, 100, 200, 195, 260, "PureBasic Window", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget)
Btn = ButtonGadget(#PB_Any,10,10,180,250,"Strg + LCLK Mouse")
*gOldEditProc_297 = SetWindowLongPtr_(GadgetID(Btn), #GWL_WNDPROC, @DplClk_Btn())
AddKeyboardShortcut(#Wnd,  #PB_Shortcut_Control |#PB_Shortcut_F, #ESC_Velindos)
; -------
;-REPEAT
Define EventID
Repeat
  EventID = WaitWindowEvent()
  Select EventID
    Case #PB_Event_CloseWindow
      ;{ Event CloseWindow
      End
      ;}
    Case #PB_Event_Menu
      ;{ Event Menu
      Select EventMenu()
        Case #ESC_Velindos
          End
      EndSelect
    Case #PB_Event_Gadget
      ;       If EventGadget() = Btn And GetAsyncKeyState_(#VK_LCONTROL) & $8000
      ;         End
      ;       EndIf
      ;}
  EndSelect
ForEver
; -------

Wenns bessere Lösungen gibt, dann lasst es mich Wissen!

Gruss ... Velindos!

_________________
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.43 LTS (32/64-Bit)


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: Majestic-12 [Bot] und 27 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye