From QB64 Wiki

Jump to: navigation, search

The _SCREENMOVE statement positions the program window on the desktop using designated coordinates or the _MIDDLE function.


_SCREENMOVE {column&, row&|_MIDDLE}


  • Positions the program window on the desktop using the column and row pixel coordinates for the upper left corner.
  • _MIDDLE can be used instead to automatically center the program window's position on the desktop in any screen resolution.


  • The program's SCREEN dimensions may influence the desktop position that can be used to keep the entire window on the screen.
  • Use _SCREENIMAGE handle with _WIDTH and _HEIGHT to find the current Windows desktop resolution to place the program's window.
  • On dual monitors a negative column position or a value greater than the main screen width can be used to position a window left or right.
  • Keyword Not Supported in Linux or MAC versions

Example 1: Calculating the border and header offsets by comparing a coordinate move with MIDDLE by using trial and error.

user& = _SCREENIMAGE userwidth& = _WIDTH(user&): userheight& = _HEIGHT(user&) 'get current screen resolution SCREEN _NEWIMAGE(800, 600, 256) scrnwidth& = _WIDTH: scrnheight& = _HEIGHT 'get the center of the program screen _SCREENMOVE (userwidth& \ 2 - scrnwidth& \ 2) - 3, (userheight \ 2 - scrnheight& \ 2) - 29 _DELAY 4 _SCREENMOVE _MIDDLE 'check centering END

When positioning the window, offset the position by -3 columns and - 29 rows to calculate the top left corner coordinate.

Example 2: Moving a program window to a second monitor positioned to the right of the main desktop.

img& = _SCREENIMAGE wide& = _WIDTH(img&) high& = _HEIGHT(img&) PRINT wide&; "X"; high& _DELAY 4 _SCREENMOVE wide& + 200, 200 'positive value for right monitor 2 img2& = _SCREENIMAGE wide2& = _WIDTH(img2&) high2& = _HEIGHT(img2&) PRINT wide2&; "X"; high2& _DELAY 4 _SCREENMOVE _MIDDLE 'moves program back to main monitor 1

Notes: _SCREENIMAGE only returns the resolution of the main desktop. Change the _SCREENMOVE column to negative for a left monitor.

Setting up dual monitors 1) Turn off the computer and attach the second monitor to the computer 2) Restart computer and right click an empty desktop area and click Properties. 3) In the Settings tab set the position of the monitor numbered 2 to left or right. 4) Set the resolution to match the main desktop resolution as closely as possible. 5) Save the settings before the prompt window times out.

Dual monitor setup

_FULLSCREEN works in the primary monitor and may push all running programs to a monitor on the right!

See also:

  • _NEWIMAGE, SCREEN (statement)

Go to Keyword Reference - Alphabetical
Go to Keyword Reference - By usage
Go to Main WIKI Page
Retrieved from ""
Personal tools
  • What links here
  • Related changes
  • Special pages
  • Printable version