95 lines
2.5 KiB
C++
95 lines
2.5 KiB
C++
// CPACTTip.cpp : implementation file
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
#include "stdafx.h"
|
|
|
|
#include "EDACTTip.hpp"
|
|
|
|
#include "EDACCnst.hpp"
|
|
|
|
CBrush g_cbToolTipBackgroudBrush(RGB(32, 32,224));
|
|
COLORREF g_colrefTextColor = RGB(192, 192, 192);
|
|
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// EdActors_SpecialToolTip
|
|
BEGIN_MESSAGE_MAP(EdActors_SpecialToolTip, CWnd)
|
|
//{{AFX_MSG_MAP(EdActors_SpecialToolTip)
|
|
ON_WM_PAINT()
|
|
//}}AFX_MSG_MAP
|
|
END_MESSAGE_MAP()
|
|
|
|
//***************************************************************************
|
|
EdActors_SpecialToolTip::EdActors_SpecialToolTip(CString csText,
|
|
CFont *pclFont)
|
|
{
|
|
m_csToolTipText = csText;
|
|
m_pclFont = pclFont;
|
|
}
|
|
|
|
//***************************************************************************
|
|
EdActors_SpecialToolTip::~EdActors_SpecialToolTip()
|
|
{
|
|
}
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// EdActors_SpecialToolTip message handlers
|
|
|
|
//***************************************************************************
|
|
BOOL EdActors_SpecialToolTip::m_fn_bCreate(CWnd *pclParentWnd)
|
|
{
|
|
return CWnd::Create(NULL,
|
|
"",
|
|
WS_BORDER,
|
|
CRect(0,0,0,0),
|
|
/*GetDesktopWindow()*/pclParentWnd,
|
|
0,
|
|
NULL);
|
|
}
|
|
|
|
//***************************************************************************
|
|
void EdActors_SpecialToolTip::OnPaint()
|
|
{
|
|
CPaintDC dc(this); // device context for painting
|
|
|
|
CRect crClientRect;
|
|
GetClientRect(crClientRect);
|
|
dc.FillRect(crClientRect, &g_cbToolTipBackgroudBrush);
|
|
|
|
dc.SelectObject(m_pclFont);
|
|
dc.SetTextColor(g_colrefTextColor);
|
|
dc.SetBkMode(TRANSPARENT);
|
|
dc.TextOut(0, 0, m_csToolTipText);
|
|
|
|
// Do not call CWnd::OnPaint() for painting messages
|
|
}
|
|
|
|
//***************************************************************************
|
|
void EdActors_SpecialToolTip::m_fn_vMove(CPoint point)
|
|
{
|
|
CRect crNewRect;
|
|
CClientDC dc(this);
|
|
dc.SelectObject(m_pclFont);
|
|
CSize csTextSize = dc.GetTextExtent(m_csToolTipText);
|
|
|
|
crNewRect = CRect( point.x,
|
|
point.y,
|
|
point.x + csTextSize.cx + C_TTIPS_SPACING,
|
|
point.y + csTextSize.cy + C_TTIPS_SPACING);
|
|
|
|
//Looks if whole tooltip would be visible
|
|
CRect crPCRect;
|
|
GetParent()->GetClientRect(crPCRect);
|
|
if ( crNewRect.right > crPCRect.right )
|
|
crNewRect.OffsetRect(crPCRect.right-crNewRect.right, 0);
|
|
|
|
ShowWindow(SW_SHOW);
|
|
MoveWindow(crNewRect);
|
|
}
|
|
|