Code: Select all
Procedure CreateWindow(ParentID=0,Flag = #PB_Window_SystemMenu|#PB_Window_SizeGadget);|#PB_Window_NoActivate)
Static Count, Window =-1
Protected W=400,H=300
Window = OpenWindow(#PB_Any,0,0, W,H, "Window_"+Str(Count),Flag, ParentID) :Count +1
If IsWindow(Window)
For i = 0 To 1000
ButtonGadget(i,5,5,25,25,"")
Next
EndIf
ProcedureReturn Window
EndProcedure
Window = CreateWindow()
ResizeWindow(Window,300,300,#PB_Ignore,#PB_Ignore)
Window = CreateWindow()
ResizeWindow(Window,500,300,#PB_Ignore,#PB_Ignore)
Window = CreateWindow()
ResizeWindow(Window,700,300,#PB_Ignore,#PB_Ignore)
Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow
Code: Select all
Enumeration #PB_Event_FirstCustomValue
#PB_Event_ShowActiveWindow
#PB_Event_ShowDeactiveWindow
EndEnumeration
Procedure ShowActiveWindowCallBack()
ProcedureReturn HideWindow(EventWindow(), #False)
EndProcedure
Procedure ShowDeactiveWindowCallBack()
ProcedureReturn HideWindow(EventWindow(), #False, #PB_Window_NoActivate)
EndProcedure
Procedure __OpenWindow(Window,X,Y,Width,Height,Title$,Flags,ParentID)
Protected Hide
If Not (Flags & #PB_Window_Invisible)
Hide = #PB_Window_Invisible|#PB_Window_NoActivate
EndIf
Protected WindowID = OpenWindow(Window,X,Y,Width,Height,Title$,Hide|Flags,ParentID) :If Window =-1 :Window = WindowID :EndIf
If Not (Flags & #PB_Window_Invisible)
If Flags & #PB_Window_NoActivate
BindEvent( #PB_Event_ShowDeactiveWindow, @ShowDeactiveWindowCallBack(), Window )
PostEvent(#PB_Event_ShowDeactiveWindow, Window, -1)
Else
BindEvent( #PB_Event_ShowActiveWindow, @ShowActiveWindowCallBack(), Window )
PostEvent(#PB_Event_ShowActiveWindow, Window, -1)
EndIf
EndIf
ProcedureReturn Window
EndProcedure
Macro OpenWindow(Window,X,Y,Width,Height,Title,Flags=0,ParentID =0) :__OpenWindow(Window,X,Y,Width,Height,Title,Flags,ParentID) :EndMacro
;______________________________
Procedure CreateWindow(ParentID=0,Flag = #PB_Window_SystemMenu|#PB_Window_SizeGadget);|#PB_Window_NoActivate)
Static Count, Window =-1
Protected W=400,H=300
Window = OpenWindow(#PB_Any,0,0, W,H, "Window_"+Str(Count),Flag, ParentID) :Count +1
If IsWindow(Window)
For i = 0 To 1000
ButtonGadget(i,5,5,25,25,"")
Next
EndIf
ProcedureReturn Window
EndProcedure
Window = CreateWindow()
ResizeWindow(Window,300,300,#PB_Ignore,#PB_Ignore)
Window = CreateWindow()
ResizeWindow(Window,500,300,#PB_Ignore,#PB_Ignore)
Window = CreateWindow()
ResizeWindow(Window,700,300,#PB_Ignore,#PB_Ignore)
Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow