autodefine "off"

$include "windowssdk.inc"

WINDOW w1
INT bChecked

OPENWINDOW w1,0,0,350,350,@MINBOX|@MAXBOX|@SIZE,0,"Background for Menus",&main

BEGINMENU w1
	MENUTITLE "File"
    MENUITEM "Print",0,1
    MENUITEM "Check me",0,2
BEGINPOPUP "Sub-menu"
	MENUITEM "Sub-menu item",0,3
ENDPOPUP
    SEPARATOR
    MENUITEM "Quit",0,4
ENDMENU

'Set the menu background colour
	SetMenuColour(w1.hWnd,RGB(200,200,200),TRUE) 'FALSE for no background

WAITUNTIL IsWindowClosed(w1)
	END

SUB main(),INT
	SELECT @MESSAGE
CASE @IDCREATE
	CENTERWINDOW w1
CASE @IDCLOSEWINDOW
'Closes the window and sets w1=0
	CLOSEWINDOW w1
CASE @IDMENUPICK
	SELECT @MENUNUM
CASE 1 'User selected Print
	PRINTWINDOW w1
CASE 2 'User selected Check me
	bChecked=(bChecked=FALSE)
	CHECKMENUITEM w1,2,bChecked
CASE 4 'User selected Quit
	CLOSEWINDOW w1
ENDSELECT
ENDSELECT
RETURN 0
ENDSUB

SUB SetMenuColour(INT hWnd,UINT dwColor,INT bIncludeSubmenus)
	MENUINFO mi
IF bIncludeSubmenus
	INT flags=MIM_BACKGROUND|MIM_APPLYTOSUBMENUS
ENDIF
	mi.cbSize=LEN(mi)
	mi.fmask=flags
	mi.hbrBack=CreateSolidBrush(dwColor)
	SetMenuInfo(GetMenu(hWnd),mi)
	DrawMenuBar(hWnd)
ENDSUB
