resize windowed screen when maximised?

Windows specific forum
BackupUser
PureBasic Guru
PureBasic Guru
Posts: 16777133
Joined: Tue Apr 22, 2003 7:42 pm

Post by BackupUser »

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
BackupUser
PureBasic Guru
PureBasic Guru
Posts: 16777133
Joined: Tue Apr 22, 2003 7:42 pm

Post by BackupUser »

Restored from previous forum. Originally posted by fred.

Any chance to got a little sample code ?

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

Post by BackupUser »

Restored from previous forum. Originally posted by bad jim.

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
; EOF
Two ears, one mouth
Two eyes, ten fingers
dmoc
Enthusiast
Enthusiast
Posts: 739
Joined: Sat Apr 26, 2003 12:40 am

Post by dmoc »

bump
Post Reply