schwere Geburt


Nah, dazu brauchste keine extra LIB's. Das sind lediglich zwei Befehle: CreatePatternBrush_() und SetClassLong_(). Aber wie du gesagt hast ist es wohl besser sich erst mal mit den Basics zu beschäftigen anstatt mit der API zumzudaddeln.Das geht schon, dazu kommst du aber um ein wenig Win-Api nicht rum (oder SkinWin-Lib (o.ä.) im PBOSL)
Code: Alles auswählen
Procedure WCB(WindowID, Message, wParam, lParam)
Result = #PB_ProcessPureBasicEvents
Select Message
Case #WM_CTLCOLORSTATIC
Select lparam
Case GadgetID(1)
SetBkMode_(wparam,#TRANSPARENT)
ProcedureReturn GetStockObject_(#HOLLOW_BRUSH)
EndSelect
EndSelect
ProcedureReturn Result
EndProcedure
CreateImage(0, 100,100)
StartDrawing( ImageOutput(0) )
Circle(0,0,110,$00ff00)
StopDrawing()
hWin=OpenWindow(0, 50,150,400,400, "")
CreateGadgetList(hWin)
ImageGadget(0, 0,0, 200,100, ImageID(0) , #PB_Image_Border)
TextGadget(1, 10,20, 300,20, "hach wie lustig, ich bin ja doch durchsichtig", $0)
TextGadget(2, 10,40, 300,20, "hach wie lustig, ich bin nicht durchsichtig", $0)
SetGadgetColor(1, #PB_Gadget_FrontColor, $009900)
SetGadgetColor(2, #PB_Gadget_FrontColor, $009900)
SetWindowCallback(@WCB(),0)
Repeat
event=WindowEvent()
Select event
Case #PB_Event_CloseWindow
quit=1
EndSelect
Until quit
Code: Alles auswählen
Repeat
OpenWindow(0, 100, 250, 600, 580, "Background direct included", #PB_Window_SystemMenu|#PB_Window_ScreenCentered|#WS_CLIPCHILDREN)
If LoadImage(0, "irgendein-Bitmap.bmp") <> 0 ; "irgendein Bitmap"-Bild ins gleiche Verzeichnis wie diese PB-PRogramm stellen.
ID_Background1=ImageID(0) ; Geladenes Bild ...
StartDrawing(WindowOutput(0)) ; ... direkt zum Fenster ausgeben ...
DrawImage(ID_Background1, 0, 0) ; und dort zeichnen
StopDrawing()
Else
MessageRequester("Error","Kann Bitmap nicht finden/laden !!", #PB_MessageRequester_Ok)
Break
EndIf
Until event=#PB_Event_CloseWindow
Code: Alles auswählen
If OpenWindow(0, 100, 250, 600, 580, "Background direct included", #PB_Window_SystemMenu|#PB_Window_ScreenCentered|#WS_CLIPCHILDREN)
If LoadImage(0, #PB_Compiler_Home + "Examples\Sources\Data\Background.bmp")
ID_Background1=ImageID(0)
StartDrawing(WindowOutput(0))
For x = 0 To WindowWidth(0) / ImageWidth(0)
For y = 0 To WindowHeight(0) / ImageHeight(0)
DrawImage(ID_Background1, x * ImageWidth(0), y * ImageHeight(0))
Next y
Next x
StopDrawing()
Else
MessageRequester("Error","Kann Bitmap nicht finden/laden !!", #PB_MessageRequester_Ok)
End
EndIf
Repeat
Event = WaitWindowEvent(100)
If event = #PB_Event_CloseWindow Or GetAsyncKeyState_(#VK_ESCAPE)
quit = 1
EndIf
Until quit = 1
EndIf