Seite 1 von 3
Bild als Hintergrund fuer Fenster
Verfasst: 25.08.2008 18:07
von Knight_Rider_2000
hier mal ein code um ein Bildhintergrund fuer eigene Fenster einzurichten
Viel spass damit
Code: Alles auswählen
#IDC_BITMAP=$5DC
UseJPEGImageDecoder()
If OpenWindow(0,0,0,200,60,"Backgrounded Window",#PB_Window_ScreenCentered | #PB_Window_SystemMenu | #SS_BITMAP)
If CreateGadgetList(WindowID(0))
hHandle1.l=CreateWindowEx_(0,"STATIC","",#SS_BITMAP | #WS_CHILD | #WS_VISIBLE,0,0,200,60, WindowID(0),#IDC_BITMAP,0,0)
image=LoadImage(#PB_Any,"Untitled.jpg"); Or image=LoadImage_(image,"Untitled.jpg",#IMAGE_BITMAP,0,0,#LR_CREATEDIBSECTION | #LR_LOADFROMFILE)
SendMessage_(hHandle1,#STM_SETIMAGE,#IMAGE_BITMAP,ImageID(image))
EndIf
EndIf
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
End
EndSelect
ForEver
Verfasst: 25.08.2008 19:11
von X0r
>; Or image=LoadImage_(image,"Untitled.jpg",#IMAGE_BITMAP,0,0,#LR_CREATEDIBSECTION | #LR_LOADFROMFILE)
Also wenn, dann bitte auch richtig..
BTW: Wo bleibt der Setup-Creator, den du vor einem Jahr im IF thread angekündigt hast? Immernoch nicht geschafft nen passenden Lizenztext zu verfassen?
Verfasst: 25.08.2008 19:19
von Knight_Rider_2000
der setup creator wurde von grund auf neu angefertigt
bisher kann er bereits:
Dialoge
entpacken aus cab und kopieren
code ausfuehrung
Dialoge zusammenbasteln
aber ist noch nicht irklich reif
mit diesem beispiel lasse ich euch daran teilhaben, denn das ist auch vorhanden
Verfasst: 25.08.2008 21:06
von Fluid Byte
@Xor:
Hab ich was verpasst oder warum hast du in den Arschloch-Modus geschaltet?
@Knight_Rider:
Dieses API Gejuckel ist völlig unnötig. ImageGadget() und gut is'. Außerdem ist es nicht wirklich ein Hintergrundbild da du ein Extrafenster verwendest was wieder Probleme mit Z-Odner und Refresh gibt. Dafür solltest du einen Brush mit CreatePatternBrush_() erstellen und ihn der Fensterklasse zuweisen.
Verfasst: 26.08.2008 14:03
von X0r
>Hab ich was verpasst oder warum hast du in den Arschloch-Modus geschaltet?
Er hat vor ca. nem Jahr oder so mein InstallForge-Thread(
http://www.purebasic.fr/german/viewtopi ... stallforge ) zugeschissen von wegen sein Installer wäre besser und er würde ihn schon bald veröffentlichen, wenn er mal nen Lizenztext fertigbekommen würde.
Nur "leider" ist bis jetzt nix gekommen.
Verfasst: 26.08.2008 18:57
von Knight_Rider_2000
Fluid Byte hat geschrieben:
Dieses API Gejuckel ist völlig unnötig. ImageGadget() und gut is'. Außerdem ist es nicht wirklich ein Hintergrundbild da du ein Extrafenster verwendest was wieder Probleme mit Z-Odner und Refresh gibt. Dafür solltest du einen Brush mit CreatePatternBrush_() erstellen und ihn der Fensterklasse zuweisen.
Fuege mal ein Gadget ein egal ob vor oder nach dem erstellten Fenster und du wirst merken das die anderen Gadgets davor gezeichnet werden. ein Image gadget wuerde dabei flackern.
Verfasst: 26.08.2008 19:12
von Fluid Byte
@XOR:
Ah I seh' schon, du musstest gut was einstecken. War aber nicht nur KightRider2k der mit Scheisse geschmissen hat. Is' schon komisch das solche Threads hier immer "in die Hose" gehen.
@KR2k:
Lass das hier laufen und wechsele den Fokus zu einem anderen Fenster oder zieh es ausser Sichtweite des Desktops und bestaune wie der Button verschwindet:
Code: Alles auswählen
#IDC_BITMAP = $5DC
OpenWindow(0,0,0,400,300,"Backgrounded Window",#PB_Window_ScreenCentered | #PB_Window_SystemMenu | #SS_BITMAP)
CreateGadgetList(WindowID(0))
ButtonGadget(0,10,10,120,25,"utitled")
hwndStatic = CreateWindowEx_(0,"STATIC","",#SS_BITMAP | #WS_CHILD | #WS_VISIBLE,0,0,0,0, WindowID(0),#IDC_BITMAP,0,0)
LoadImage(0,#PB_Compiler_Home + "Examples\Sources\Data\Background.bmp")
SendMessage_(hwndStatic,#STM_SETIMAGE,#IMAGE_BITMAP,ImageID(0))
While WaitWindowEvent() ! #PB_Event_CloseWindow : Wend
DestroyWindow_(hwndStatic)
Verfasst: 26.08.2008 19:18
von X0r
>Is' schon komisch das solche Threads hier immer "in die Hose" gehen.
Was meinstn mit "solche Threads"?
Verfasst: 26.08.2008 19:31
von Knight_Rider_2000
bei mir bleibt der button sichtbar
Verfasst: 26.08.2008 22:43
von hardfalcon
Warum nehmt ihr eigentlich nicht WindowOuput()?