FUNCTION SHOW_MSG()
Local nValue := 3, oRad
DEFINE DIALOG oPopup FROM nTop, nLeft TO nTop + 280, nLeft + 300 OF oDlg PIXEL FONT oSysFont1 ;
TITLE cHead TRANSPARENT ;
STYLE nOr(WS_POPUP, WS_BORDER, WS_THICKFRAME, WS_CAPTION )
@ 100, 5 RADIO oRad VAR nValue  PIXEL ;
ITEMS "&One", "&Two", "T&hree" _3D SIZE 40, 12 ;
HELPID 100, 101, 102 ;
ON CHANGE MsgBeep()
DLG_BRUSH( oPopup, 1, .T., 16770250, 14089979, 0.2 )
ACTIVATE DIALOG oPopup
RETURN( NIL )
//--------- DIALOG Background ------------------------
FUNCTION DLG_BRUSH(oControl, nStyle, lDirect, nVColor, nBColor, nMove, cBrush, cImage)
LOCAL oBrush, oTmp
LOCAL aGrad := { { nMove, nVColor, nBColor }, { nMove, nBColor, nVColor } }
IF nStyle = 1
  hDC = CreateCompatibleDC( oControl:GetDC() )
  hBmp = CreateCompatibleBitMap( oControl:hDC, oControl:nWidth, oControl:nHeight )
  hBmpOld = SelectObject( hDC, hBmp )
  GradientFill( hDC, 0, 0, oControl:nHeight, oControl:nWidth, aGrad, lDirect )
  DeleteObject( oControl:oBrush:hBrush )
  oBrush := TBrush():New( ,,,, hBmp )
  oBrush:Cargo  := aGrad
  SelectObject( hDC, hBmpOld )
  oControl:ReleaseDC()
  oControl:SetBrush( oBrush )
  RELEASE BRUSH oBrush
ENDIF
IF nStyle = 2
  IF File( cImage )
    DEFINE IMAGE oTmp FILE cImage
      oBrush := TBrush():new( ,,,, ResizeBmp( oTmp:hBitmap, oControl:nWidth, oControl:nHeight, .T. ) )
    oControl:SetBrush( oBrush )
    oBrush:End()
  ELSE
    MsgAlert( "Cannot load : " + CRLF + ;
         cImage, "Error" )
  ENDIF
ENDIF
RETURN( NIL )