WM_VSCROLL Message abfangen

Anfängerfragen zum Programmieren mit PureBasic.
Jake
Beiträge: 121
Registriert: 28.05.2005 04:10
Wohnort: Berlin

WM_VSCROLL Message abfangen

Beitrag von Jake »

Was mache ich falsch? Ich bekomme einfach das WM_VSCROLL Event nicht.

Code: Alles auswählen

OpenWindow(0,0,0,200,400,#PB_Window_ScreenCentered|#PB_Window_SystemMenu,"#WM_VSCROLL")
CreateGadgetList(WindowID(0))
	ListIconGadget(0,0,0,WindowWidth(0),WindowHeight(0),"Test",150,#PB_ListIcon_GridLines|#PB_ListIcon_FullRowSelect|#PB_ListIcon_AlwaysShowSelection)
	For i = 0 To 100
		AddGadgetItem(0,-1,"Test"+Str(i))
	Next

Procedure WindowCallback(hWnd,Msg,wParam,lParam)
	Select Msg
	Case #WM_VSCROLL
		MessageRequester("Callback","V_SCROLL")
		ProcedureReturn 0
	EndSelect
	ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure

SetWindowCallback(@WindowCallback())
	
Repeat
	Select WaitWindowEvent()
	Case #PB_Event_CloseWindow
		Select EventWindow()
		Case 0
			CloseWindow(0)
			End
		EndSelect
	EndSelect
ForEver
MfG Jake
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: WM_VSCROLL Message abfangen

Beitrag von Kiffi »

> Ich bekomme einfach das WM_VSCROLL Event nicht.

http://forums.purebasic.com/english/vie ... hp?t=13501

Grüße ... Kiffi
a²+b²=mc²
Jake
Beiträge: 121
Registriert: 28.05.2005 04:10
Wohnort: Berlin

Beitrag von Jake »

Danke, das funktioniert.

Code: Alles auswählen

OpenWindow(0,0,0,200,400,#PB_Window_ScreenCentered|#PB_Window_SystemMenu,"#WM_VSCROLL")
CreateGadgetList(WindowID(0))
	ListIconGadget(0,0,0,WindowWidth(0),WindowHeight(0),"Test",150,#PB_ListIcon_GridLines|#PB_ListIcon_FullRowSelect|#PB_ListIcon_AlwaysShowSelection)
	For i = 0 To 100
		AddGadgetItem(0,-1,"Test"+Str(i))
	Next

Global oldCallback

Procedure WindowCallback(hWnd,Msg,wParam,lParam)
	Select Msg
	Case #WM_VSCROLL
		Debug "scrolled"
	Case #WM_MOUSEWHEEL
		Debug "scrolled"
	EndSelect
	ProcedureReturn CallWindowProc_(oldCallback, hWnd, Msg, wParam, lParam)
EndProcedure

oldCallback=SetWindowLong_(GadgetID(0), #GWL_WNDPROC, @WindowCallback())
   
Repeat
	Select WaitWindowEvent()
	Case #PB_Event_CloseWindow
		Select EventWindow()
		Case 0
			CloseWindow(0)
			End
		EndSelect
	EndSelect
ForEver
MfG Jake
Antworten