Restored from previous forum. Originally posted by bad jim.
I have a windowed screen in my gfx app. When the user resizes the app it resizes the screen by closing it and opening a new one with appropriate dimensions.
Only problem is, if the user maximises the window this un-maximises it.
Two ears, one mouth
Two eyes, ten fingers
resize windowed screen when maximised?
-
BackupUser
- PureBasic Guru

- Posts: 16777133
- Joined: Tue Apr 22, 2003 7:42 pm
-
BackupUser
- PureBasic Guru

- Posts: 16777133
- Joined: Tue Apr 22, 2003 7:42 pm
Restored from previous forum. Originally posted by bad jim.
knew I was missing something
Two ears, one mouth
Two eyes, ten fingers
knew I was missing something
Code: Select all
Global screenheight.lGlobal screenwidth.l
Global screenscale.f
screenheight=512
screenwidth=512
screenscale=1
#screenoffset=128
Procedure initmenu()
If CreateMenu(0, WindowID())=0
MessageRequester("annoy", "failed: createmenu()", 0)
End
EndIf
MenuTitle("File")
MenuItem( 1, "&Load...")
MenuItem( 2, "Save")
MenuItem( 3, "Save As...")
MenuBar()
OpenSubMenu("Recents")
MenuItem( 5, "C:\Autoexec.bat")
MenuItem( 6, "D:\Test.txt")
OpenSubMenu("Even more !")
MenuItem( 12, "Test")
CloseSubMenu()
MenuItem( 13, "C:\Ok.bat")
CloseSubMenu()
MenuBar()
MenuItem( 7, "&Quit")
MenuTitle("Edit")
MenuItem( 8, "Cut")
MenuItem( 9, "Copy")
MenuItem(10, "Paste")
MenuTitle("?")
MenuItem(11, "About")
EndProcedure
Procedure initgadgets()
CreateGadgetList(WindowID())
TextGadget(666,0,0,100,20,"bum")
TrackBarGadget(1,0,32,100,20,0,6)
TextGadget(2,0,64,100,20,"bum")
EndProcedure
Procedure init()
If InitSprite()*InitKeyboard()=0
MessageRequester("annoy", "failed: initsprite()", 0)
End
EndIf
width=512
height=512
offset=128
windowflag=#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget|#PB_Window_SizeGadget|#PB_Window_ScreenCentered
If OpenWindow(0,0,0,screenwidth,screenheight,windowflag,"hello")=0
MessageRequester("annoy", "failed: openwindow()", 0)
End
EndIf
initmenu()
ResizeWindow(#screenoffset+screenwidth,screenheight+MenuHeight())
initgadgets()
If OpenWindowedScreen(WindowID(),#screenoffset,MenuHeight(),screenwidth,screenheight,1,0,0)=0
MessageRequester("annoy", "failed: openwindowedscreen()", 0)
End
EndIf
LoadJPEGSprite(0,"pic.jpg")
EndProcedure
Procedure resizescreen()
CloseScreen()
screenwidth=WindowWidth()-#screenoffset
screenheight=WindowHeight()-MenuHeight()
If OpenWindowedScreen(WindowID(),#screenoffset,MenuHeight(),screenwidth/screenscale,screenheight/screenscale,1,0,0)=0
MessageRequester("annoy", "failed: openwindowedscreen()", 0)
End
EndIf
StartDrawing(ScreenOutput())
Circle(50,50,50,16777215)
Circle(screenwidth-50,screenheight-50,50,16777215)
StopDrawing()
LoadJPEGSprite(0,"pic.jpg")
EndProcedure
;Delay(5000)
;code starts here
init()
Repeat
DisplaySprite(0,WindowMouseX(),WindowMouseY())
FlipBuffers()
event= Event=WaitWindowEvent()
SetGadgetText(666,"Event: "+Str(event))
screenscale=Pow(2,GetGadgetState(1)-3)
SetGadgetText(2,"scale: "+StrF(screenscale))
Select event
Case 5
resizescreen()
EndSelect
Until Event=#PB_Event_CloseWindow
; ExecutableFormat=
; Executable=C:\WINDOWS\Desktop\purebasic progs\paint\paint.exe
; EOFTwo eyes, ten fingers
