LB Booster
Programming >> Compatibility with LB4 >> Window alignment
http://lbb.conforums.com/index.cgi?board=compatibility&action=display&num=1479315230

Window alignment
Post by Alincon on Nov 16th, 2016, 3:53pm

When I use this code, I expect the window to fill the screen and not leave any space on any side, but it seems not to work in LBB. Am I doing something wrong?

r.m.

Code:
 WindowWidth = DisplayWidth:    WindowHeight = DisplayWidth
 UpperLeftX=0 :     UpperLeftY=0 
 

Re: Window alignment
Post by Rod on Nov 16th, 2016, 5:02pm

Windows has changed, it is broken across all implementations. Don't know why but it is not LBB specific.

I get a 7pixel border right and left and a 5pixel border at bottom.
Re: Window alignment
Post by Jack Kelly on Nov 16th, 2016, 7:49pm

I get a full screen under Windows XP with LBB and JB.
UpperLeftX=0: UpperLeftY=0 is not needed.
WindowHeight = DisplayHeight, not DisplayWidth. This messes up JB but not LBB.

Code:
NoMainWin
WindowWidth = DisplayWidth: WindowHeight = DisplayHeight
'UpperLeftX=0: UpperLeftY=0
open "Full Screen Window" for window as #win
#win "TrapClose [quit]"
wait
[quit]
close #win
end 




Re: Window alignment
Post by Richard Russell on Nov 16th, 2016, 8:41pm

on Nov 16th, 2016, 3:53pm, Alincon wrote:
When I use this code, I expect the window to fill the screen

Part of the problem is that "fill the screen" isn't well-defined. For example, do you expect the right and left window borders to be visible or not? Do you expect the taskbar to cover part of the window or not? Do you expect the title bar to be visible or not?

In the case of a DIALOG, GRAPHICS or TEXT window, Liberty BASIC provides specific 'full screen' versions which you select by appending _FS to the window name. The window is resized so that it is slightly wider than the screen (so the left and right borders are not visible) but the height is somewhat less than the display height (so the taskbar does not cover any of the window). This is probably the best option for those window types.

For some reason the WINDOW type does not has a _FS option (I could easily add one in LBB); but you can achieve the same effect using STYLEBITS:

Code:
NoMainWin
stylebits #win, _WS_MAXIMIZE, 0, 0, 0
open "Full Screen Window" for window as #win
#win "TrapClose [quit]"
wait
[quit]
close #win
end 

If you try to force a window to be 'full screen' by setting the WindowWidth and WindowHeight variables to the display dimensions something different happens. Specifically, the left and right borders are visible, because WindowWidth is inclusive of them; this is admittedly largely cosmetic. But more seriously, the window will extend to the bottom of the display underneath the taskbar which is probably undesirable and may confuse Windows.

So my recommendation is that if you want a 'full screen' window you should achieve it using the _FS suffix when it is available, and using STYLEBITS otherwise. The WindowWidth and WindowHeight variables should be reserved for when you want the window to be smaller than the screen.

For completeness I should add that it is also possible to create a genuinely 'full screen' window in which neither the title bar nor taskbar is visible. This can be achieved using API calls but is generally not to be encouraged except for special purposes such as video games.

Richard.
Re: Window alignment
Post by Alincon on Nov 16th, 2016, 8:46pm

I'm embarrassed to say that this thread is due to programmer error.
r.m.

Re: Window alignment
Post by tsh73 on Nov 17th, 2016, 07:08am

As they said - the only one who do not error is one that does nothing .