auf dich ist immer Verlaß.
Naja, das Thema ist ja auch nicht ganz trivial.
Das mit dem Image habe ich gelassen und ein Bild geladen. Habe folgende Lösung gefunden.
Nur eben mal hier im Forum anständig geklaut und zusammengeklickt.
Hier meine zusammengeklickte Rohfassung zum Lernen, ich denke, andere PB´ler können es evtl. auch gebrauchen:
Code: Alles auswählen
Enumeration ; Windows
#Window_0
EndEnumeration
Enumeration ; Gadgets
#TYW
#EX
#EY
#EXW
#EYW
#T
#X
#Y
#XW
#YW
#TX
#TY
#TXW
EndEnumeration
Global abfrage, mousecaree=0
Global Dim TextGadgetColors.l(5)
Global TextGadgetBackground,TextGadgetForeground, Text_Background_Gelb,Text_Background_Gelb_off, Text_Background_Titel
UseJPEGImageDecoder()
myImage = LoadImage(0, "pinguin1.jpg") ; hier ein Bild laden
; --> create brush for our window background
windowBrush = CreatePatternBrush_(myImage)
; --> Use #HOLLOW_BRUSH (#NULL) brush for our StringGadget background
stringBrush = GetStockObject_(#HOLLOW_BRUSH)
; --> Set our window background brush (image)
Text_Background_Gelb = CreateSolidBrush_($0000FFFF)
Text_Background_Gelb_off = CreateSolidBrush_($00000000)
Text_Background_Titel = CreateSolidBrush_($00008CFF)
TextGadgetBackground=GetStockObject_(#HOLLOW_BRUSH)
TextGadgetForeground=RGB($00,$00,$00)
Procedure TextGadget_Gelb_on(GadgetNr)
TextGadgetColors(GadgetNr) = 1
InvalidateRect_(GadgetID(GadgetNr),0,1)
EndProcedure
Procedure TextGadget_Gelb_off(GadgetNr)
TextGadgetColors(GadgetNr) = 0
InvalidateRect_(GadgetID(GadgetNr),0,1)
EndProcedure
Procedure WinProc(hWnd,Msg,wParam,lParam)
If Msg=#WM_CTLCOLORSTATIC
Select lParam
Case GadgetID(#T)
SetBkMode_(wParam,#TRANSPARENT)
SetTextColor_(wParam,TextGadgetForeground)
ProcedureReturn Text_Background_Titel
Case GadgetID(#TX)
SetBkMode_(wParam,#TRANSPARENT)
SetTextColor_(wParam,TextGadgetForeground)
ProcedureReturn TextGadgetBackground
Case GadgetID(#TY)
SetBkMode_(wParam,#TRANSPARENT)
SetTextColor_(wParam,TextGadgetForeground)
ProcedureReturn TextGadgetBackground
Case GadgetID(#TXW)
SetBkMode_(wParam,#TRANSPARENT)
SetTextColor_(wParam,TextGadgetForeground)
ProcedureReturn TextGadgetBackground
Case GadgetID(#TYW)
SetBkMode_(wParam,#TRANSPARENT)
SetTextColor_(wParam,TextGadgetForeground)
ProcedureReturn TextGadgetBackground
Case GadgetID(#EX)
SetBkMode_(wParam,#TRANSPARENT)
SetTextColor_(wParam,TextGadgetForeground)
ProcedureReturn TextGadgetBackground
Case GadgetID(#EY)
SetBkMode_(wParam,#TRANSPARENT)
SetTextColor_(wParam,TextGadgetForeground)
ProcedureReturn TextGadgetBackground
Case GadgetID(#EXW)
SetBkMode_(wParam,#TRANSPARENT)
SetTextColor_(wParam,TextGadgetForeground)
ProcedureReturn TextGadgetBackground
Case GadgetID(#EYW)
SetBkMode_(wParam,#TRANSPARENT)
SetTextColor_(wParam,TextGadgetForeground)
ProcedureReturn TextGadgetBackground
EndSelect
Else
ProcedureReturn #PB_ProcessPureBasicEvents
EndIf
EndProcedure
Procedure threadsetcolorgadget(nr)
Repeat
pxx=WindowMouseX(#Window_0)
pyx=WindowMouseX(#Window_0)
px=WindowMouseY(#Window_0)
py=WindowMouseY(#Window_0)
If py>=50 And py<=70 And pyx>=150 And pyx<=270
HideGadget(#X,0)
Else
SetGadgetText(#EX,GetGadgetText(#X))
HideGadget(#X,1)
EndIf
If py>=120 And py<=140 And pyx>=150 And pyx<=270
HideGadget(#Y,0)
Else
SetGadgetText(#EY,GetGadgetText(#Y))
HideGadget(#Y,1)
EndIf
If py>=190 And py<=210 And pyx>=150 And pyx<=270
HideGadget(#XW,0)
Else
SetGadgetText(#EXW,GetGadgetText(#XW))
HideGadget(#XW,1)
EndIf
If py>=260 And py<=280 And pyx>=150 And pyx<=270
HideGadget(#YW,0)
Else
SetGadgetText(#EYW,GetGadgetText(#YW))
HideGadget(#YW,1)
EndIf
Delay(100)
Until quit
EndProcedure
UseJPEGImageDecoder()
myImage = LoadImage(0, "F:\pinguin1.jpg") ;hier ein Bild laden
; --> create brush for our window background
windowBrush = CreatePatternBrush_(myImage)
; --> Use #HOLLOW_BRUSH (#NULL) brush for our StringGadget background
stringBrush = GetStockObject_(#HOLLOW_BRUSH)
; --> Set our window background brush (image)
If OpenWindow(#Window_0, 50, 158, 321, 330, "Mouse X | Y", #PB_Window_SystemMenu | #PB_Window_TitleBar )
SetClassLong_(WindowID(#Window_0),#GCL_HBRBACKGROUND,windowBrush)
;If CreateGadgetList(WindowID(#Window_0))
TextGadget(#T, 80, 10, 180, 20, " Mausabfrage zum Färben ")
SetGadgetColor(#T,#PB_Gadget_BackColor,$00008CFF)
StringGadget(#X, 180, 50, 120, 20, "")
StringGadget(#Y, 180, 120, 120, 20, "")
StringGadget(#XW, 180, 190, 120, 20, "")
StringGadget(#YW, 180, 260, 120, 20, "")
SetGadgetColor(#X,#PB_Gadget_BackColor,$0000FFFF)
SetGadgetColor(#y,#PB_Gadget_BackColor,$0000FFFF)
SetGadgetColor(#XW,#PB_Gadget_BackColor,$0000FFFF)
SetGadgetColor(#YW,#PB_Gadget_BackColor,$0000FFFF)
HideGadget(#X,1)
HideGadget(#Y,1)
HideGadget(#XW,1)
HideGadget(#YW,1)
;EndIf
EndIf
SetWindowCallback(@WinProc())
TextGadget(#TX, 30, 50, 120, 20, "Feld 1")
TextGadget(#TY, 30, 120, 120, 20, "Feld 2")
TextGadget(#TXW, 30, 190, 120, 20, "Feld 3")
TextGadget(#TYW, 30, 260, 120, 20, "Feld 4")
TextGadget(#EX, 180, 50, 120, 20, "",#PB_Text_Border)
TextGadget(#EY, 180, 120, 120, 20, "",#PB_Text_Border)
TextGadget(#EXW, 180, 190, 120, 20, "",#PB_Text_Border)
TextGadget(#EYW, 180, 260, 120, 20, "",#PB_Text_Border)
CreateThread(@threadsetcolorgadget(),154)
Repeat : Until WaitWindowEvent()=#PB_Event_CloseWindow
DeleteObject_(TextGadgetBackground)