www.pudn.com > GetPass.rar > XInfoTip.h


/////////////////////////////////////////////////////////////////////////// 
//                                                                          
// FILE NAME                                                                
//                                                                          
//		XInfoTip.h 
//                                                                          
// COMPONENT                                                                
//                                                                          
//		CXInfoTip class interface 
//                                                                          
// DESCRIPTION                                                              
// 
//		This tooltip control implements: 
// 
//		o An immediate popup tip window 
//		o Normal control tooltips 
// 
//		The tip window can display an icon and multi-line 
//		tip text.  Seperate multiple text lines with a '\n'. 
//		The tip window's colors are derrived from 
//		system window, window text, and scroll bar colors. 
// 
//		Create the control by calling the Create() method. 
// 
//		To display immediate tips, call the Show() method. 
//		Call SetIcon() to set the icon used for immediate tips. 
// 
//		Use AddTool() to add tool windows.  RelayEvent() must 
//		be called from the parent windows's PreTranslateMessage(). 
// 
//		Call SetShowDelay() to adjust the tip popup delay. 
// 
//		Call SetFont() to change the tooltip text font.  The default 
//		is the system default GUI font. 
// 
// AUTHOR 
// 
//		Mark Bozeman		09-16-2001 
// 
/////////////////////////////////////////////////////////////////////////// 
// This software is released into the public domain.   
// You are free to use it in any way you like. 
// 
// This software is provided "as is" with no expressed  
// or implied warranty.  I accept no liability for any  
// damage or loss of business that this software may cause.  
/////////////////////////////////////////////////////////////////////////// 
 
#ifndef _XPOPUPTIP_H_INCLUDE_ 
#define _XPOPUPTIP_H_INCLUDE_ 
 
#if _MSC_VER >= 1000 
#pragma once 
#endif // _MSC_VER >= 1000 
 
class CXInfoTip : public CWnd 
{ 
protected: 
	/////////////////////////////////////////////////////////////////////////// 
	// Tool information structure 
	/////////////////////////////////////////////////////////////////////////// 
	typedef struct 
	{ 
		CString	szText;											// Tooltip text 
		HICON	hIcon;											// Tooltip icon 
	} TipToolInfo; 
 
	// Timer identifiers 
	enum 
	{ 
		timerShow			= 100,								// Show timer 
		timerHide			= 101								// Hide timer 
	}; 
 
	LPCTSTR		m_szClass;										// Window class 
 
	int			m_nShowDelay;									// Show delay 
 
	CPoint		m_ptOrigin;										// Popup origin 
 
	CString		m_szText;										// Tip text 
 
	UINT		m_nTimer;										// Show/hide timer 
 
	HICON		m_hIcon;										// Tip icon 
	CSize		m_IconSize;										// Tip icon size 
 
	CFont		*m_pFont;										// Tip font 
 
	CMap	m_ToolMap;		// Tools map 
 
public: 
	CXInfoTip(); 
	virtual ~CXInfoTip(); 
 
	BOOL Create(CWnd *parent); 
 
	void AddTool(CWnd *pWnd, LPCTSTR szTooltipText, HICON hIcon = NULL); 
	void RemoveTool(CWnd *pWnd); 
 
	void Show(CString szText, CPoint *pt = NULL); 
	void Hide() { ShowWindow(SW_HIDE); }; 
 
	// Sets the delay for the tooltip 
	void SetShowDelay(int nDelay) { m_nShowDelay = nDelay; }; 
 
	void SetIcon(HICON hIcon); 
 
	// Sets the tooltip font 
	void SetFont(CFont *pFont)  
	{  
		m_pFont = pFont;  
		if (IsWindow(m_hWnd)) 
			RedrawWindow(); 
	}; 
 
	void RelayEvent(LPMSG lpMsg); 
 
protected: 
	BOOL GetWindowRegion(CDC *pDC, HRGN* hRegion, CSize* Size = NULL); 
 
 
protected: 
	//{{AFX_MSG(CXInfoTip) 
	afx_msg void OnPaint(); 
	afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); 
	afx_msg void OnTimer(UINT nIDEvent); 
	afx_msg void OnDestroy(); 
	//}}AFX_MSG 
	DECLARE_MESSAGE_MAP() 
 
}; 
 
//{{AFX_INSERT_LOCATION}} 
// Microsoft Developer Studio will insert additional declarations immediately before the previous line. 
 
#endif