property ExMenu.Picture as IPictureDisp
Retrieves or sets the background's picture.

TypeDescription
IPictureDisp A Picture object being displayed on the control's background.

Use the Picture property to put a picture on the control's background. Use the PictureDisplay to arrange the picture on the control's background. Use the Picture property to load a picture on the drop down menu's background. Use the BackColor property to specify the control's background color. Use the SelBackColor and SelForeColor properties to define colors for selected item.

The following VB sample puts a picture on the control's background:

With ExMenu1
        .PictureDisplay = Tile
        .Picture = LoadPicture("c:\WinNT\Zapotec.bmp")
End With 

The following C++ sample puts a picture on the control's background:

IPictureDisp* pPicture = NULL;
if ( LoadPicture( "c:\\winnt\\zapotec.bmp", &pPicture ) )
{
	m_menu.SetPicture( pPicture );
	m_menu.SetPictureDisplay( 48 /*Tile*/ );
}

where the LoadPicture function gets the IPictureDisp from a file:

#include 
BOOL LoadPicture( LPCTSTR szFileName, IPictureDisp** ppPictureDisp )
{
	BOOL bResult = FALSE;
	if ( szFileName )
	{
		OFSTRUCT of;
		HANDLE hFile = NULL;;
#ifdef _UNICODE
		USES_CONVERSION;
		if ( (hFile = (HANDLE)OpenFile( W2A(szFileName), &of, OF_READ | OF_SHARE_COMPAT)) != (HANDLE)HFILE_ERROR )
#else
		if ( (hFile = (HANDLE)OpenFile( szFileName, &of, OF_READ | OF_SHARE_COMPAT)) != (HANDLE)HFILE_ERROR )
#endif
		{
			*ppPictureDisp = NULL;
			DWORD dwHighWord = NULL, dwSizeLow = GetFileSize( hFile, &dwHighWord );
			DWORD dwFileSize = dwSizeLow;
			HRESULT hResult = NULL;
			if ( HGLOBAL hGlobal = GlobalAlloc(GMEM_MOVEABLE, dwFileSize) )
				if ( void* pvData = GlobalLock( hGlobal ) )
				{
					DWORD dwReadBytes = NULL;
					BOOL bRead = ReadFile( hFile, pvData, dwFileSize, &dwReadBytes, NULL );
					GlobalUnlock( hGlobal );
					if ( bRead )
					{
						CComPtr spStream;
						_ASSERTE( dwFileSize == dwReadBytes );
						if ( SUCCEEDED( CreateStreamOnHGlobal( hGlobal, TRUE, &spStream) ) )
							if ( SUCCEEDED( hResult = OleLoadPicture( spStream, 0, FALSE, IID_IPictureDisp, (void**)ppPictureDisp ) ) )
								bResult = TRUE;
					}
				}
			CloseHandle( hFile );
		}
	}
	return bResult;
}

The following VB.NET sample puts a picture on the control's background:

With AxExMenu1
    .Picture = Image.FromFile("c:\winnt\zapotec.bmp")
    .PictureDisplay = EXMENULib.PictureDisplayEnum.Tile
End With

The following C# sample puts a picture on the control's background:

axExMenu1.Picture = Image.FromFile("c:\\winnt\\zapotec.bmp");
axExMenu1.PictureDisplay = EXMENULib.PictureDisplayEnum.Tile;

The following VFP sample puts a picture on the control's background:

With thisform.ExMenu1
        .PictureDisplay = 48 && Tile
        .Picture = LoadPicture("c:\WinNT\Zapotec.bmp")
EndWith