Window Background Image setzen ohne PureTools ??

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
nco2k
Beiträge: 892
Registriert: 08.09.2004 23:13

Window Background Image setzen ohne PureTools ??

Beitrag 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
~|__/
..o.o.. <--- This is Einkaufswagen. Copy Einkaufswagen into your signature to help him on his way to world domination.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
nco2k
Beiträge: 892
Registriert: 08.09.2004 23:13

Beitrag 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
~|__/
..o.o.. <--- This is Einkaufswagen. Copy Einkaufswagen into your signature to help him on his way to world domination.
Benutzeravatar
Hroudtwolf
Beiträge: 1416
Registriert: 30.10.2004 23:33
Kontaktdaten:

Beitrag 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 
Zuletzt geändert von Hroudtwolf am 15.03.2005 14:31, insgesamt 1-mal geändert.
Benutzeravatar
freedimension
Admin
Beiträge: 1987
Registriert: 08.09.2004 13:19
Wohnort: Ludwigsburg
Kontaktdaten:

Beitrag 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.
Beginne jeden Tag als ob es Absicht wäre!
Bild
BILDblog
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Ich denke, das macht PB automatisch (ohne Garantie :D)
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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 :D
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Hroudtwolf
Beiträge: 1416
Registriert: 30.10.2004 23:33
Kontaktdaten:

Beitrag von Hroudtwolf »

@ts-soft

Das kannst du halten wie die Dachdecker.
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Beitrag 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?)
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
Hroudtwolf
Beiträge: 1416
Registriert: 30.10.2004 23:33
Kontaktdaten:

Beitrag von Hroudtwolf »

habs windowid(0) vergessen.
Sorry........ :oops:
Antworten