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