RE: Centering Windows
- Posted by president at insight-concepts.com May 22, 2001
- 455 views
Thanks Derek, The code you sent worked fine. Long Live Euphoria, Chris At 11:47 23.05.2001 +1000, you wrote: > > > > -----Original Message----- > > From: president at insight-concepts.com > > [mailto:president at insight-concepts.com] > > Sent: Wednesday, 23 May 2001 9:25 AM > > To: EUforum > > Subject: Centering Windows > > > > Does anyone know how to center win32lib windows no matter > > what the screen > > resolution is? > >Try this procedure. > >--------------- >--/Topic Utilities >--/proc centerWindow(integer id, integer referid) >--/desc Moves /i id control to the center of /i refid control. >--If /i refid is zero then the Screen is used. >-- >--Example: >--/code >-- -- Move the window to the center of the screen. >-- centreWindow( myWIN, 0) >-- -- Move the button to the center of the window. >-- centreWindow( myButton, myWIN) >--/endcode >procedure centreWindow(integer id, integer referid) > sequence lRect, lClient, lRefRect > trace(1) > -- use Screen if no referid supplied. > if referid = 0 then > referid = Screen > end if > > -- Get width and height of the window. > lRect = {0, 0} & getCtlSize(id) > > -- Get left, top, right, bottom co-ordinates > -- of the reference control client area. > lRefRect = getClientRect(referid) > > -- Calculate reference client area width and height > lRefRect[3] = lRefRect[3] - lRefRect[1] > lRefRect[4] = lRefRect[4] - lRefRect[2] > > -- Calculate new left and top co-ordinates > lRect[1] = floor((lRefRect[3] - lRect[3]) * 0.5) > lRect[2] = floor((lRefRect[4] - lRect[4]) * 0.5) > <snip> > >