Seite 1 von 2

Variablen und WindowCallbacks

Verfasst: 03.01.2008 13:00
von Fusselohr
Hallo Leute,
mag jetzt etwas blöd klingen aber ich hab eigentlich keine Ahnung wie Windows Callbacks funktionieren. Ich weis nur das man mit ihrer Hilfe zum Beispiel bei Scrollbars direkte Aktualiesierungen erreichen kann. Ich möchte eigentlich nur eine Variable mithilfe eines Scrollbargadets aktualisieren aber ich weis einfach nicht wie das funktioniert... :D - könnt mir jm. vielleicht ein Tipp oder so geben ?

Gruß Fusselohr

Re: Variablen und WindowCallbacks

Verfasst: 03.01.2008 13:38
von Kiffi
kleines (hoffentlich einleuchtendes) Beispiel:

Code: Alles auswählen

#myWindow=0
#myScrollBarGadget=0

Procedure Callback(hwnd,msg,wParam,lParam)
  
  If msg = #WM_HSCROLL And lParam = GadgetID(#myScrollBarGadget)
    
    SetWindowTitle(#myWindow, Str(GetGadgetState(#myScrollBarGadget)))
    
  EndIf
  
  ProcedureReturn #PB_ProcessPureBasicEvents
  
EndProcedure

OpenWindow(#myWindow,#PB_Ignore,#PB_Ignore,240,60,"CallbackTest")

CreateGadgetList(WindowID(#myWindow))

ScrollBarGadget(#myScrollBarGadget,20,20,200,20,1,1000,1)   

SetWindowCallback(@Callback())
 
Repeat
  event = WaitWindowEvent()     
Until event = #PB_Event_CloseWindow
Beweg mal den Slider und beobachte dabei den Fenstertitel.

Grüße ... Kiffi

Verfasst: 03.01.2008 15:02
von bobobo
@Kiffi und nun verräzt du noch wo man eine auflistung von windoofcontrols
nebst zugehörigen messages (wie #wm_hscoll) findet

Verfasst: 03.01.2008 17:09
von Fusselohr
@ Kiffi: Danke für das Beispiel :D. Geht das denn nur mit Funktionen, wie Text ändern oder so oder gibts auch ne Möglichkeit wie gesagt ne Variable demnach zu bestimmen ohne eventuell ein Textgadget oder so zu verwenden dass dann ausgelesen wird ?

@ bobobo: In der WinApi ?

Verfasst: 03.01.2008 17:36
von Kiffi
bobobo hat geschrieben:@Kiffi und nun verräzt du noch wo man eine auflistung von windoofcontrols
nebst zugehörigen messages (wie #wm_hscoll) findet
Für Dich doch gerne ;-)

Beispielsweise hier für WM_HSCROLL: http://msdn2.microsoft.com/en-us/library/bb787575.aspx

Alle weiteren Infos kannst Du Dir über den Tree auf der linken Seite
erarbeiten.
Fusselohr hat geschrieben:gibts auch ne Möglichkeit wie gesagt ne Variable demnach zu bestimmen
Meinst Du so?

Code: Alles auswählen

Global MeineVariable.l

Procedure Callback(hwnd,msg,wParam,lParam)
  If msg = #WM_HSCROLL And lParam = GadgetID(#myScrollBarGadget)
    MeineVariable = GetGadgetState(#myScrollBarGadget)
  EndIf
  ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure
Grüße ... Kiffi

Verfasst: 03.01.2008 17:44
von Fusselohr
Ja danke ^^. Vielen Dank. :allright: :allright: :allright:

Verfasst: 03.01.2008 18:00
von bobobo
Kiffi hat geschrieben: Alle weiteren Infos kannst Du Dir über den Tree auf der linken Seite
erarbeiten.
ich will ne fertige liste und nix erarbeiten :cry:

vielleicht sollte ich mal den dllfreak2001 fragen, ob der so ne liste häkeln
mag. erstens isses windoof und zweitens scheint der ja ne menge zeit zu
haben :mrgreen:

Verfasst: 03.01.2008 21:04
von Kiffi
bobobo hat geschrieben:ich will ne fertige liste und nix erarbeiten :cry:
fauler Sack! ;-)

jaPBe verfügt über einen Konstanten-Explorer, in dem besagte Konstanten
schön übersichtlich aufgelistet sind.

Bild

Grüße ... Kiffi

Verfasst: 04.01.2008 13:45
von bobobo
ein solcher explorer ist in der PB-IDE auch drin (nicht ganz so
informationsbehaftet aber immerhin)

Was mir eigentlich fehlt ist ne sinnvolle zuordung der messages zu den
zugehörigen controls und andersrum.

Verfasst: 04.01.2008 16:21
von edel
Fehlen tut da ueberhaupt nichts. MSDN bietet fuer jedes Control
eine Seite, wo alle Nachrichten, Funktionen, Makros und Strukturen
uebersichtlich aufgelistet werden. Mit dem neuen MSDN ist es jetzt
noch einfacher. Einfach mal im 2 Frame die Menus aufklappen.