Small Basic #11: The Graphics Window
The Microsoft Small Basic graphics window allows you to do the following, as demonstrated in the following code:
- Change the graphics window's background color, height, width, placement relative to the screen's top-left corner, title, and whether the user can resize the graphics window.
- Drawing hollow and solid ellipses, rectangles, and triangles of varying colors.
- Displaying images.
- Resizing existing shapes and images.
- Getting and changing the color of individual pixels.
- Responding to user actions such as pressing and releasing keys on the keyboard, moving the mouse, and clicking and releasing mouse buttons.
' Create a graphics window of 700x500 offset from the top-left corner of the screen by 50,100.
' Change the graphics window's title, and make its background color green.
' Allow users to resize the graphics window.
GraphicsWindow.BackgroundColor = "Green"
GraphicsWindow.CanResize = "True"
GraphicsWindow.Height = 500
GraphicsWindow.Width = 700
GraphicsWindow.Top = 50
GraphicsWindow.Left = 100
GraphicsWindow.Title = "Please Wait..."
GraphicsWindow.Clear()
' Draw a random picture on the graphics window.
' Note that Flickr methods have the potential to display images that may not be suitable for younger users.
GraphicsWindow.DrawImage(Flickr.GetRandomPicture("cat"), 175, 0)
' Draw an ellipse, line, rectangle, text, an image, and a triangle on the graphics window.
' Use a blue pen. Do not fill in the shapes.
GraphicsWindow.PenColor = "Blue"
GraphicsWindow.PenWidth = 5
GraphicsWindow.DrawEllipse(100, 150, 50, 20)
GraphicsWindow.DrawLine(0, 0, 50, 100)
GraphicsWindow.DrawRectangle(25, 175, 60, 30)
GraphicsWindow.DrawBoundText(0, 20, GraphicsWindow.Width, "Hello, World!")
' Note that Flickr methods have the potential to display images that may not be suitable for younger users.
GraphicsWindow.DrawResizedImage(Flickr.GetRandomPicture("dog"), 10, 250, 100, 75)
GraphicsWindow.DrawTriangle(15, 350, 55, 350, 35, 375)
' Draw a filled-in ellipse, rectangle, and triangle.
' Use a specific red-green-blue (RGB) color mixture.
GraphicsWindow.BrushColor = GraphicsWindow.GetColorFromRGB(125, 100, 75)
GraphicsWindow.FillEllipse(10, 400, 50, 20)
' Use the color of the pixel at graphics window location 0,10.
GraphicsWindow.BrushColor = GraphicsWindow.GetPixel(0, 10)
GraphicsWindow.FillRectangle(5, 455, 60, 30)
GraphicsWindow.FillTriangle(100, 455, 150, 425, 125, 475)
' Change the graphics window's background color to some random color.
GraphicsWindow.BackgroundColor = GraphicsWindow.GetRandomColor()
' Change a bunch of individual pixels' background colors to random colors.
For x = 70 to 170
For y = 40 to 80
GraphicsWindow.SetPixel(x, y, GraphicsWindow.GetRandomColor())
EndFor
EndFor
GraphicsWindow.Title = "My Graphics Window"
' Show a dialog box.
GraphicsWindow.ShowMessage("Look, scattered colors!", "Set Pixels")
' Enable the graphics window to respond to mouse and keyboard events.
GraphicsWindow.MouseDown = OnMouseDown
GraphicsWindow.MouseUp = OnMouseUp
GraphicsWindow.MouseMove = OnMouseMove
GraphicsWindow.KeyDown = OnKeyDown
GraphicsWindow.KeyUp = OnKeyUp
GraphicsWindow.TextInput = OnTextInput
Sub OnKeyDown
GraphicsWindow.Title = "The " + GraphicsWindow.LastKey + " key was pressed down."
EndSub
Sub OnKeyUp
GraphicsWindow.Title = "The " + GraphicsWindow.LastKey + " key was released."
EndSub
Sub OnMouseDown
GraphicsWindow.Title = "The mouse button was pressed down."
EndSub
Sub OnMouseUp
GraphicsWindow.Title = "The mouse button was released."
EndSub
Sub OnMouseMove
GraphicsWindow.Title = "The mouse moved to " + GraphicsWindow.MouseX + ", " + GraphicsWindow.MouseY + "."
EndSub
Sub OnTextInput
GraphicsWindow.Title = "Some text was input."
EndSub
Comments
Anonymous
November 06, 2013
This works it is AWSOME!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! THANKS soooooooooooooooooooooooooooooooo much!Anonymous
February 01, 2014
Agreed - excellent demo. Also, in the OnMouseDown routine, if you add tests using IsLeftMouseDown & IsRightMouseDown you can detect a left-button press, a right-button press, AND a middle-button press, (I didn't know Small Basic could distinguish between all three buttons!)Anonymous
December 09, 2015
it helped me a lot so a big thanks to you!Anonymous
December 13, 2015
The comment has been removedAnonymous
March 06, 2016
Hello! If anyone has any questions, please ask in the Small Basic forum: social.msdn.microsoft.com/.../threads Thanks!