Seite 1 von 1

WM_VSCROLL Message abfangen

Verfasst: 13.02.2006 08:54
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

Re: WM_VSCROLL Message abfangen

Verfasst: 13.02.2006 11:12
von Kiffi
> Ich bekomme einfach das WM_VSCROLL Event nicht.

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

Grüße ... Kiffi

Verfasst: 13.02.2006 12:29
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