1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
   |  
/---------------------------------------------------------------------------
//---------------------------------------------------------------------------
void __fastcall THintWindow::NCPaint(HDC DC)
{
        // rien faire
       // evite l'erreur de linkage
}
 
//---------------------------------------------------------------------------
WideString g_GlobalHint = "" ;
//---------------------------------------------------------------------------
 
TRect __fastcall TMyHintWindow::CalcHintRect(int MaxWidth, AnsiString AHint, void * AData)
{
        _tString Text = g_GlobalHint ;
 
        Canvas->Font->Size = 14;
        Canvas->Font->Color = clYellow;
        Canvas->Font->Name = "Arial";
 
        TSize size ;
        GetTextExtentPoint(Canvas->Handle,Text.GET_DATA(),Text.Length(),&size);
 
        TRect rect = THintWindow::CalcHintRect(MaxWidth, AHint, AData);
        rect.Right = 10 + rect.Left + size.cx + 10 ;
        return rect;
}
 
void __fastcall TMyHintWindow::Paint(void)
{
        _tString Text = g_GlobalHint ;
 
        TRect Rect = GetClientRect();
 
        HRGN WindowRegion = CreateRoundRectRgn( 1,
                                                1,
                                                Rect.Width(),
                                                Rect.Height(),
                                                20,
                                                20);
 
        SetWindowRgn(Handle, WindowRegion, true);
 
 
        HBRUSH hbr = CreateSolidBrush((COLORREF)clBlack);
        HBRUSH hbr_old = SelectObject(Canvas->Handle,hbr);
        FillRect(Canvas->Handle,&Rect,hbr);
        SelectObject(Canvas->Handle,hbr_old);
        if (hbr != NULL) DeleteObject(hbr);
 
        TRect RectEx = GetClientRect();
        RectEx.Top += 1 ;
        RectEx.Left += 1 ;
        RectEx.Right -= 3 ;
        RectEx.Bottom -= 3 ;
 
        hbr = CreateSolidBrush((COLORREF)0x00FFA0A0);
        hbr_old = SelectObject(Canvas->Handle,hbr);
        HPEN Pen = CreatePen(PS_SOLID,1,(COLORREF)0x00FFA0A0);
        HPEN OldPen = SelectObject(Canvas->Handle,Pen);
        RoundRect(Canvas->Handle,RectEx.Left,RectEx.Top,RectEx.Right,RectEx.Bottom,20,20);
        SelectObject(Canvas->Handle,hbr_old);
        if (hbr != NULL) DeleteObject(hbr);
        SelectObject(Canvas->Handle,OldPen);
        if (Pen != NULL) DeleteObject(Pen);
 
        Canvas->Font->Size = 14;
        Canvas->Font->Color = clYellow;
        Canvas->Font->Name = "Arial";
 
        SelectObject(Canvas->Handle, Canvas->Font->Handle);
        SetBkMode(Canvas->Handle, TRANSPARENT);
        SetTextColor(Canvas->Handle, clYellow);
        DrawText(Canvas->Handle,Text.GET_DATA(),Text.Length(), &RectEx,DT_SINGLELINE | DT_CENTER | DT_VCENTER);
}
//--------------------------------------------------------------------------- | 
Partager