Seite 1 von 2
Window Background Image setzen ohne PureTools ??
Verfasst: 14.03.2005 16:59
von nco2k
hi folks,
nur so aus neugier... wie setzt man ein Image als fenster hintergrund so wie bei SetWinBackgroundImage() aus den PureTools ??
c ya,
nco2k
Verfasst: 14.03.2005 17:35
von ts-soft
Code: Alles auswählen
Procedure.l Window_Form1()
If OpenWindow(0,149,202,400,300,#PB_Window_SystemMenu,"")
Brush.LOGBRUSH\lbStyle=#BS_PATTERN
Brush\lbColor=#DIB_RGB_COLORS
Brush\lbHatch=UseImage(1)
SetClassLong_(WindowID(0),#GCL_HBRBACKGROUND,CreateBrushIndirect_(Brush))
InvalidateRect_(WindowID(0), #Null, #True)
If CreateGadgetList(WindowID(0))
ProcedureReturn WindowID()
EndIf
EndIf
EndProcedure
LoadImage(1,"hintergrund.bmp")
If Window_Form1()
Repeat
event = WaitWindowEvent()
Until event = #PB_Event_CloseWindow
EndIf
Den Pfad zum Bild bitte anpassen
MfG
Thomas
Verfasst: 14.03.2005 17:50
von nco2k
ok danke, muss ich den brush aber nicht vorher noch freigeben bevor ich das programm beende, oder macht das windows automatisch ?!
c ya,
nco2k
Verfasst: 14.03.2005 17:57
von Hroudtwolf
Einfacher und mit weniger Code gehts so.
Code: Alles auswählen
If OpenWindow(0,149,202,400,300,#PB_Window_SystemMenu,"")
himage.l=loadimage (1,"deinbild.bmp")
hBrush.l = CreatePatternBrush_(hImage.l)
SetClassLong_(windowid(0), #GCL_HBRBACKGROUND, hBrush.l)
InvalidateRect_(windowid(0),, #NULL, #TRUE)
Repeat
event = WaitWindowEvent()
Until event = #PB_Event_CloseWindow
DeleteObject_(hBrush.l)
endif
Verfasst: 14.03.2005 17:58
von freedimension
Du bist alleinverantwortlich für jeden von dir angelegten Brush und musst ihn daher auch wieder freigeben. Andernfalls kann es (muss aber nicht) zu unschönen Fehlermeldungen kommen wenn man das Programm beendet.
Verfasst: 14.03.2005 17:58
von ts-soft
Ich denke, das macht PB automatisch (ohne Garantie

)
Verfasst: 14.03.2005 18:03
von ts-soft
@Hroudtwolf
Was ist an Deinem Code einfacher ? Abgesehen davon das Du direkt die Händels verwendest, statt diese mit PB-Funktionen zu ermitteln sehe ich keinen Unterschied. Mein Code ist wahrscheinlich verständlicher

Verfasst: 14.03.2005 19:12
von Hroudtwolf
@ts-soft
Das kannst du halten wie die Dachdecker.
Verfasst: 15.03.2005 14:06
von bobobo
Hroudtwolf hat geschrieben:@ts-soft
Das kannst du halten wie die Dachdecker.
nicht ganz .. der ts-soft-code funktioniert im Gegensatz zu Deinem
(liegt's an XP?)
Verfasst: 15.03.2005 14:31
von Hroudtwolf
habs windowid(0) vergessen.
Sorry........
