Menu's are sprites...
Here is my main menu code...
Function _menu_start()
Sync On : Sync Rate 0
Disable Escapekey
Set Window On
Hide Window
Set Window Layout 0,0,0
Set Window Position 10,10
Set Window Size 476,476
Set Display Mode 476,476,32
Load Image "images\menu.png",1,1
Load Image "images\play_over.png",2,1
Load Image "images\options_over.png",3,1
Load Image "images\about_over.png",4,1
Load Image "images\exit_over.png",5,1
Sprite 1,0,0,1
Sprite 2,500,500,2
Sprite 3,500,500,3
Sprite 4,500,500,4
Sprite 5,500,500,5
Show Window
Sync
Do
`play button
If MouseX() >= 161 And MouseX() <= 261 And MouseY() >= 234 And MouseY() <= 257
Sprite 2,161,234,2
If MouseClick() = 1
For i = 1 To 5
Delete Image i
Delete Sprite i
Next i
ExitFunction
EndIf
Else
Sprite 2,500,500,2
EndIf
`options button
If MouseX() >= 283 And MouseX() <= 383 And MouseY() >= 234 And MouseY() <= 257
Sprite 3,283,234,3
If MouseClick() = 1
Print "Options are not as yet available"
EndIf
Else
Sprite 3,500,500,3
EndIf
`about button
If MouseX() >= 161 And MouseX() <= 261 And MouseY() >= 276 And MouseY() <= 299
Sprite 4,161,276,4
If MouseClick() = 1
Print "About is not as yet available"
EndIf
Else
Sprite 4,500,500,4
Endif
`exit button
If MouseX() >= 283 And MouseX() <= 383 And MouseY() >= 276 And MouseY() <= 299
Sprite 5,283,276,5
If MouseClick() = 1
For i = 1 To 5
Delete Image i
Delete Sprite i
Next i
End
EndIf
Else
Sprite 5,500,500,5
EndIf
Sync
Loop
EndFunction
But you should really figure it out yourself...

Team EOD :: Programmer/Logical Engineer/All-Round Nice Guy