Hi!
Sorry, 'FrameRgn' ist dafür eigentlich doch ungeeignet, da der
Rahmen ja um die Region gezeichnet wird.
Das funktioniert zwar, aber sehen kannst Du natürlich nichts
davon, da Du exakt VOR dem Rahmen das Fenster ausschneidest.
Nimmst Du also lieber RoundRect, Ok?
Hier ein schnelles Beispiel...
Code: Alles auswählen
#BS_FLAT = 32768
startx=0
starty=0
endx=400
endy=400
roundx=30
roundy=30
OpenWindow(0,0,0,endx,endy,#WS_POPUP|#PB_Window_ScreenCentered,"Test")
hWnd=WindowID()
HideWindow(0,1)
CreateGadgetList(hWnd)
ButtonGadget(0,270,355,80,25,"Beenden",#BS_FLAT)
region=CreateRoundRectRgn_(startx,starty,endx,endy,roundx,roundy)
SetWindowRgn_(hWnd,region,#True)
DeleteObject_(region)
brush=GetStockObject_(#HOLLOW_BRUSH)
pen=GetStockObject_(#BLACK_PEN)
CreateImage(0,endx,endy)
hDC=StartDrawing(ImageOutput())
Box(0,0,endx,endy,RGB(200,200,255))
SelectObject_(hDC,brush)
SelectObject_(hDC,pen)
RoundRect_(hDC,startx,starty,endx-1,endy-1,roundx,roundy)
StopDrawing()
imagebrush=CreatePatternBrush_(UseImage(0))
SetClassLong_(hWnd,#GCL_HBRBACKGROUND,imagebrush)
HideWindow(0,0)
Repeat
Event=WaitWindowEvent()
Select Event
Case #PB_Event_Gadget
Select EventGadgetID()
Case 0
quit=1
EndSelect
Case #WM_LBUTTONDOWN
SendMessage_(WindowID(),#WM_SYSCOMMAND,#SC_MOVE + #HTCAPTION,0)
EndSelect
Until quit=1
DeleteObject_(imagebrush)
Gruß,
Mischa