home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 16 / CD_ASCQ_16_0994.iso / news / 4611 / fw16d.ins / SOURCE / FUNCTION / MSGTOOLS.C < prev    next >
C/C++ Source or Header  |  1994-06-08  |  1KB  |  65 lines

  1. #include <WinTen.h>
  2. #include <Windows.h>
  3. #include <ClipApi.h>
  4.  
  5. void WindowRaised( HDC, LPRECT );
  6. void WindowBoxIn( HDC, LPRECT );
  7.  
  8. #define CLR_LIGHTGRAY 12632256          // RGB( 192, 192, 192 )
  9.  
  10. //----------------------------------------------------------------------------//
  11.  
  12. CLIPPER MsgPaint()
  13. {
  14.    HWND  hWnd    = _parni( 1 );
  15.    LPSTR cMsg    = _parc( 2 );
  16.    LPSTR cMsgDef = _parc( 3 );
  17.    BOOL  bErase  = _parl( 4 );
  18.    BOOL  bCenter = _parl( 5 );
  19.    HDC   hDC     = GetDC( hWnd );
  20.    RECT  rc;
  21.    WORD  wLen;
  22.  
  23.    GetClientRect( hWnd, &rc );
  24.  
  25.    SetTextColor( hDC, 0 );
  26.    SetBkColor( hDC, CLR_LIGHTGRAY );
  27.  
  28.    rc.top    += 4;
  29.    rc.left   += 4;
  30.    rc.bottom -= 4;
  31.    rc.right  -= 8;
  32.  
  33.    if( ! ( wLen = _parclen( 2 ) ) )
  34.    {
  35.       wLen = _parclen( 3 );
  36.       cMsg = cMsgDef;
  37.    }
  38.  
  39.    if( bCenter )
  40.    {
  41.       ExtTextOut( hDC, 8, 4, ETO_OPAQUE | ETO_CLIPPED, &rc, "", 0, 0 );
  42.       DrawText( hDC, cMsg, wLen, &rc, IF( bCenter, DT_CENTER, DT_LEFT ) );
  43.    }
  44.    else
  45.       ExtTextOut( hDC, 8, 4, ETO_OPAQUE | ETO_CLIPPED, &rc, cMsg, wLen, 0 );
  46.  
  47.    if( bErase )
  48.    {
  49.       rc.top    -= 4;
  50.       rc.left   -= 4;
  51.       rc.bottom += 3;
  52.       rc.right  += 7;
  53.       WindowRaised( hDC, &rc );
  54.  
  55.       rc.top    += 3;
  56.       rc.left   += 3;
  57.       rc.right  -= 3;
  58.       rc.bottom -= 3;
  59.       WindowBoxIn( hDC, &rc );
  60.    }
  61.    ReleaseDC( hWnd, hDC );
  62. }
  63.  
  64. //----------------------------------------------------------------------------//
  65.