Пример #1
0
//***********************************************************************************************************
BOOL CBCGPBaseVisualCtrl::OnTTNeedTipText (UINT /*id*/, NMHDR* pNMH, LRESULT* /*pResult*/)
{
	static CString strTipText;

	CPoint point;
	
	::GetCursorPos (&point);
	ScreenToClient (&point);

	CString strDescr;
	if (!OnGetToolTip(point, strTipText, strDescr))
	{
		return FALSE;
	}

	LPNMTTDISPINFO	pTTDispInfo	= (LPNMTTDISPINFO) pNMH;
	ASSERT((pTTDispInfo->uFlags & TTF_IDISHWND) == 0);

	if (m_bToolTipCleared && strTipText == m_strLastDisplayedToolTip && strDescr == m_strLastDisplayedToolTipDescr)
	{
		return FALSE;
	}

#if !defined _BCGPCHART_STANDALONE
	if (!strDescr.IsEmpty())
	{
		CBCGPToolTipCtrl* pToolTip = DYNAMIC_DOWNCAST (
			CBCGPToolTipCtrl, m_pToolTip);

		if (pToolTip != NULL)
		{
			ASSERT_VALID (pToolTip);
			pToolTip->SetDescription(strDescr);
		}
	}
#endif

	pTTDispInfo->lpszText = const_cast<LPTSTR> ((LPCTSTR) strTipText);
	m_bToolTipCleared = FALSE;
	m_strLastDisplayedToolTip = strTipText;
	m_strLastDisplayedToolTipDescr = strDescr;

	return TRUE;
}
//**********************************************************************************
BOOL CBCGPCaptionBar::OnNeedTipText(UINT /*id*/, NMHDR* pNMH, LRESULT* /*pResult*/)
{
	static CString strTipText;

	if (m_pToolTip->GetSafeHwnd () == NULL || 
		pNMH->hwndFrom != m_pToolTip->GetSafeHwnd ())
	{
		return FALSE;
	}

	if (CBCGPPopupMenu::GetActiveMenu () != NULL)
	{
		return FALSE;
	}

	LPNMTTDISPINFO	pTTDispInfo	= (LPNMTTDISPINFO) pNMH;
	ASSERT((pTTDispInfo->uFlags & TTF_IDISHWND) == 0);

	CString strDescr;

	switch (pNMH->idFrom)
	{
	case nIdToolTipClose:
		{
			CBCGPLocalResource locaRes;
			strTipText.LoadString (IDS_BCGBARRES_CLOSEBAR);
		}
		break;

	case nIdToolTipText:
		strTipText = m_strText;
		strTipText.Remove (_T('\b'));
		break;

	case nIdToolTipImage:
		strTipText = m_strImageToolTip;
		strDescr = m_strImageDescription;
		break;

	case nIdToolTipButton:
		strTipText = m_strButtonToolTip;
		strDescr = m_strButtonDescription;
		break;
	}

	if (strTipText.IsEmpty ())
	{
		return TRUE;
	}

	CBCGPToolTipCtrl* pToolTip = DYNAMIC_DOWNCAST (
		CBCGPToolTipCtrl, m_pToolTip);

	if (pToolTip != NULL && !strDescr.IsEmpty ())
	{
		ASSERT_VALID (pToolTip);
		pToolTip->SetDescription (strDescr);
	}

	pTTDispInfo->lpszText = const_cast<LPTSTR> ((LPCTSTR) strTipText);
	return TRUE;
}