Fenster mit BackImage neu zeichnen ?!

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Ghosty1967
Beiträge: 205
Registriert: 29.08.2005 13:56
Computerausstattung: Intel i7, 128GB Ram, Win10 Ultimate, PB6.00 Alpha 3
Wohnort: Köln

Fenster mit BackImage neu zeichnen ?!

Beitrag von Ghosty1967 »

Hallo Leutz...

Ich habe ein Fenster, welches mit einem Image als Hintergrund gezeichnet wird. In diesem Fenster, gibt es ein ImageGadget, indem einmal z.B. ein Film abgespielt werden soll.
Soweit klappt das auch.. nur wenn ich während der Laufzeit die Fenstergröße ändere, wird zwar das Image neu gezeichnet und das Fenster mit der neuen Größe angezeigt, aber das ImageGadget inkl. Movie iss wech!
WARUM ?
Ich hab hier mal einen Teil des Codes gepostet und hoffe, das mir einer von Euch da helfen kann !

Code: Alles auswählen

Procedure DrawWindow(win,maxW.l,maxH.l)
  CreateImage(0,maxW,maxH)
  maxH-1: maxW-1
  If StartDrawing(ImageOutput())
    DrawingMode(0)
    Box(0,0,maxW,maxH,$505050)
    LineXY(maxW,0,0,0,$D2D2D2): LineXY(0,0,0,maxH,$D2D2D2)
    LineXY(1,maxH,maxW,maxH,$000000): LineXY(maxW,maxH,maxW,1,$000000)
    LineXY(maxW-1,1,1,1,$A0A0A0): LineXY(1,1,1,maxH-1,$A0A0A0)
    LineXY(2,maxH-1,maxW-1,maxH-1,$282828): LineXY(maxW-1,maxH-1,maxW-1,2,$282828)
    LineXY(maxW-2,2,2,2,$6E6E6E): LineXY(2,2,2,maxH-2,$6E6E6E)
    LineXY(3,maxH-2,maxW-2,maxH-2,$3C3C3C): LineXY(maxW-2,maxH-2,maxW-2,3,$3C3C3C)
    LineXY(maxW-6,18,6,18,$3C3C3C): LineXY(6,18,6,maxH-6,$3C3C3C)
    LineXY(7,maxH-6,maxW-6,maxH-6,$6E6E6E): LineXY(maxW-6,maxH-6,maxW-6,19,$6E6E6E)
    LineXY(maxW-7,19,7,19,$282828): LineXY(7,19,7,maxH-7,$282828)
    LineXY(8,maxH-7,maxW-7,maxH-7,$A0A0A0): LineXY(maxW-7,maxH-7,maxW-7,20,$A0A0A0)
    LineXY(maxW-8,20,8,20,$000000): LineXY(8,20,8,maxH-8,$000000)
    LineXY(9,maxH-8,maxW-8,maxH-8,$D2D2D2): LineXY(maxW-8,maxH-8,maxW-8,21,$D2D2D2)
    Box(9,21,maxW-17,maxH-29,$D2D2D2)
    StopDrawing()
  EndIf
  hwnd = OpenWindow(0, 0, 0, maxW, maxH, #PB_Window_BorderLess|#PB_Window_ScreenCentered, "VidPure") 
  backbrush=CreatePatternBrush_(UseImage(0))
  SetClassLong_(UseWindow(0),#GCL_HBRBACKGROUND,backbrush)
  If CreateGadgetList(WindowID(0))
    ImageGadget(10,65,80,240,180,0,#PB_Image_Border)
  EndIf
  
EndProcedure

DrawWindow(0,370,318)
LoadMovie (0,"L:\Filme\Format_AVI\The Sentinel.avi")
PlayMovie (0,GadgetID(10))

;...dann gehts weiter mit der Mausroutine usw...
Wenn einer möchte, kann er sich hier auch mal das komplette Projekt downloaden
und anschauen http://www.sfoerster.com/wintest.rar
Danke an euch Freaks schonmal im vorraus !!! ;)
Benutzeravatar
Leonhard
Beiträge: 602
Registriert: 01.03.2006 21:25

Re: Fenster mit BackImage neu zeichnen ?!

Beitrag von Leonhard »

Ghosty1967 hat geschrieben:Soweit klappt das auch.. nur wenn ich während der Laufzeit die Fenstergröße ändere, wird zwar das Image neu gezeichnet und das Fenster mit der neuen Größe angezeigt, aber das ImageGadget inkl. Movie iss wech!
Ich kann die Größe des Fenstern nicht ändern auser ich gebe im Programm ResizeWindow(...) an und da klappt alles. Was genau ist das Problem?

Ghosty1967 hat geschrieben:Wenn einer möchte, kann er sich hier auch mal das komplette Projekt downloaden
und anschauen http://www.sfoerster.com/wintest.rar
Danke an euch Freaks schonmal im vorraus !!! ;)
Die Datei 'close.bmp' fehlt.
Antworten