property Menu.PictureDisplay as PictureDisplayEnum
Retrieves or sets a value that indicates the way how the picture is displayed.

TypeDescription
PictureDisplayEnum A PictureDisplayEnum expression that specifies how the picture is displayed on the menu's background.
Use the PictureDisplay property to arrange the menu's picture. The PictureDisplay property has no effect if the menu's background has no picture loaded. Use the Picture property to put a picture on the menu's background. Use the Picture property to put a picture on the control's background. Use the BackColor property to specify the item's background color. Use the ForeColor property to specify the item's foreground color. Use the Caption property to specify the caption of the item.

The following VB sample assigns a picture to a submenu:

With ExMenu1(10).SubMenu
    .PictureDisplay = Tile
    .Picture = LoadPicture("c:\winnt\zapotec.bmp")
End With

The following C++ sample assigns a picture to a submenu:

IPictureDisp* pPicture = NULL;
if ( LoadPicture( "c:\\winnt\\zapotec.bmp", &pPicture ) )
{
	CMenu1 subMenu = m_menu.GetItem( COleVariant(long(10)) ).GetSubMenu();
	subMenu.SetPicture( pPicture );
	subMenu.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 assigns a picture to a submenu:

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

where the IPDH class is defined like follows:

Public Class IPDH
    Inherits System.Windows.Forms.AxHost

    Sub New()
        MyBase.New("")
    End Sub

    Public Shared Function GetIPictureDisp(ByVal image As Image) As Object
        GetIPictureDisp = AxHost.GetIPictureDispFromPicture(image)
    End Function

End Class

The following C# sample assigns a picture to a submenu:

EXMENULib.Menu subMenu = axExMenu1[10].SubMenu;
subMenu.Picture = IPDH.GetIPictureDisp(Image.FromFile("c:\\winnt\\zapotec.bmp")) as stdole.IPictureDisp ;
subMenu.PictureDisplay = EXMENULib.PictureDisplayEnum.Tile;

The following VFP sample assigns a picture to a submenu:

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