Klickabfrage auf 'Movies' [gelöst]

Für allgemeine Fragen zur Programmierung mit PureBasic.
IceFish
Beiträge: 10
Registriert: 02.01.2008 02:47

Klickabfrage auf 'Movies' [gelöst]

Beitrag von IceFish »

Hallo,

ich kam heute auf das Problem, dass ich eine Doppelklickabfrage auf ein Fenster programmieren wollte. Das besondere ist, dass in dem Fenster ein Film läuft. Anscheinend funktioniert so die normale abfrge nicht mehr. Vielleicht hat einer eine Idee wie ich das beheben kann, ohne einen 'Screen' zu öffnen.

Hier ein Code wie es NICHT funktioniert:

Code: Alles auswählen

 InitMovie()
 If OpenWindow(0,100,100,800,600,"")
  LoadMovie(0,"video.avi")
  ResizeMovie(0,0,0,800,600)
  PlayMovie(0,WindowID(0))
  Repeat
   Select WaitWindowEvent()
    Case #PB_Event_CloseWindow
     quit = 1
    Case #WM_LBUTTONDBLCLK
     Debug "Doppelklick"
   EndSelect
  Until quit = 1
 EndIf
 End
Zuletzt geändert von IceFish am 16.03.2008 20:25, insgesamt 1-mal geändert.
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

Code: Alles auswählen

 InitMovie()
 
 Global oldcb
 
 Procedure callback(hwnd,msg,wparam,lparam)
 	
 	If msg = #WM_LBUTTONDBLCLK
 		Debug "Doppelklick"
 	EndIf 
 	
 	ProcedureReturn CallWindowProc_(oldcb,hwnd,msg,wparam,lparam)
 EndProcedure
 
 If OpenWindow(0,100,100,800,600,"")
  LoadMovie(0,"C:\Windows\ehome\ColorTint.wmv")
  ResizeMovie(0,0,0,800,600)
  PlayMovie(0,WindowID(0))
  
  
  child = FindWindowEx_(WindowID(0),0,"VideoRenderer",0)  
  oldcb = SetWindowLong_(child,#GWL_WNDPROC,@callback())
  
  
  Repeat
  Until #PB_Event_CloseWindow = WaitWindowEvent()
  
 EndIf 
IceFish
Beiträge: 10
Registriert: 02.01.2008 02:47

Beitrag von IceFish »

Hey, cool! Danke, klasse Idee! :allright:
Antworten