Ich habe zwar gesucht aber nix gefunden

Code: Alles auswählen
EnableExplicit
Procedure DrawGadgetBorder(GadgetID.I, BorderColor.I)
Protected BackImage.I
BackImage = CreateImage(#PB_Any, GadgetWidth(GadgetID) + 4,
GadgetHeight(GadgetID) + 4)
StartDrawing(ImageOutput(BackImage))
Box(0, 0, ImageWidth(BackImage), ImageHeight(BackImage), BorderColor)
StopDrawing()
ImageGadget(#PB_Any, GadgetX(GadgetID) - 2, GadgetY(GadgetID) - 2,
GadgetWidth(GadgetID) + 4, GadgetHeight(GadgetID) + 4,
ImageID(BackImage))
FreeImage(BackImage)
SetWindowLongPtr_(GadgetID(GadgetID), #GWL_STYLE,
GetWindowLongPtr_(GadgetID(GadgetID), #GWL_STYLE) | #WS_CLIPSIBLINGS)
EndProcedure
OpenWindow(0, 270, 100, 170, 145, "Gadgets mit Rahmen")
CheckBoxGadget(0, 10, 20, 95, 18, "OptionGadget", #WS_CLIPSIBLINGS)
DrawGadgetBorder(0, #Blue)
EditorGadget(1, 10, 60, 150, 70, #WS_CLIPSIBLINGS)
DrawGadgetBorder(1, #Red)
SetGadgetText(1, "EditorGadget")
Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow
Code: Alles auswählen
Global oldProc, brush1, brush2
Procedure WndCallback(hWnd, Msg, wParam, lParam)
Select Msg
Case #WM_NCPAINT
GetWindowRect_(hWnd, cRect.RECT)
OffsetRect_(cRect, -cRect\left, -cRect\top)
hdc = GetDCEx_(hWnd, 0, #DCX_WINDOW|$10000)
FrameRect_(hdc, cRect, brush1)
InflateRect_(cRect, -1, -1)
FrameRect_(hdc, cRect, brush2)
ReleaseDC_(hWnd, hdc)
ProcedureReturn 0
Case #WM_NCDESTROY
SetWindowLongPtr_(hWnd, #GWL_WNDPROC, @oldProc)
ProcedureReturn DefWindowProc_(hWnd, Msg, wParam, lParam)
EndSelect
ProcedureReturn CallWindowProc_(oldProc, hWnd, Msg, wParam, lParam)
EndProcedure
OpenWindow(0, 0, 0, 320, 200, "", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
EditorGadget(0, 10, 10, 300, 180)
brush1 = CreateSolidBrush_(#Blue)
brush2 = CreateSolidBrush_(#Cyan)
oldProc = SetWindowLongPtr_(GadgetID(0), #GWL_WNDPROC, @WndCallback())
While WaitWindowEvent() <> #PB_Event_CloseWindow : Wend
DeleteObject_(brush1)
DeleteObject_(brush1)
Code: Alles auswählen
Global oldProc, brush1, brush2
Procedure WndCallback(hWnd, Msg, wParam, lParam)
Select Msg
Case #WM_NCPAINT
GetWindowRect_(hWnd, cRect.RECT)
OffsetRect_(cRect, -cRect\left, -cRect\top)
hdc = GetDCEx_(hWnd, 0, #DCX_WINDOW|$10000)
FrameRect_(hdc, cRect, brush1)
InflateRect_(cRect, -1, -1)
FrameRect_(hdc, cRect, brush2)
ReleaseDC_(hWnd, hdc)
ProcedureReturn 0
Case #WM_NCDESTROY
SetWindowLongPtr_(hWnd, #GWL_WNDPROC, @oldProc)
ProcedureReturn DefWindowProc_(hWnd, Msg, wParam, lParam)
EndSelect
ProcedureReturn CallWindowProc_(oldProc, hWnd, Msg, wParam, lParam)
EndProcedure
OpenWindow(0, 0, 0, 320, 200, "", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
EditorGadget(0, 10, 10, 300, 180)
brush1 = CreateSolidBrush_(#Blue)
brush2 = CreateSolidBrush_(#Cyan)
oldProc = SetWindowLongPtr_(GadgetID(0), #GWL_WNDPROC, @WndCallback())
SetWindowPos_(GadgetID(0), 0, 0, 0, 0, 0, #SWP_NOSIZE|#SWP_NOMOVE|#SWP_NOZORDER|#SWP_NOACTIVATE|#SWP_FRAMECHANGED)
While WaitWindowEvent() <> #PB_Event_CloseWindow : Wend
DeleteObject_(brush1)
DeleteObject_(brush1)