MFECToolTip.h
上传用户:sdpcwz
上传日期:2009-12-14
资源大小:1237k
文件大小:2k
源码类别:

书籍源码

开发平台:

Visual C++

  1. #ifndef _MFECTOOLTIP_H_
  2. #define _MFECTOOLTIP_H_
  3. // default tooltip colors
  4. #define IVORY       RGB(255, 255, 220)
  5. #define BLACK RGB(0, 0, 0)
  6. // this structure holds all the tooltip information
  7. struct ToolTipInfo : public CObject
  8. {
  9. UINT nControlID; // ID of the control
  10. UINT nInfoSize; // number of lines in the info
  11. CStringArray nControlInfo; // container of the information
  12. COLORREF nTextColor; // text color
  13. COLORREF nBackColor; // background color
  14. };
  15. class CMFECToolTip : public CWnd
  16. {
  17. // Construction
  18. public:
  19. CMFECToolTip();   // standard constructor
  20. virtual ~CMFECToolTip(); // destructor
  21. void Create(CWnd* pWnd);
  22. void ErasePreviousToolTipDisplay( UINT );
  23. void ShowToolTip( UINT ); // explicitly shown the tooltip given the control ID
  24. // NOTE: the user must override the PreTranslateMessage in the calling window in order
  25. // to handle mousemovent. 
  26. void ShowToolTip( CPoint& ); // called only during Mousemovement
  27. // tooltip functions
  28. BOOL AddControlInfo( UINT, CStringArray&, COLORREF back=IVORY, COLORREF text=BLACK );
  29. BOOL RemoveControlInfo( UINT );
  30. // inline functions
  31. void SetFontSize( int size ) { m_nFontSize = size; }
  32. // Implementation
  33. protected:
  34. CWnd* m_pParentWnd;
  35. int m_nHeight;
  36. int m_nWidth;
  37. int m_nFontSize;
  38. int m_nTotalLine;
  39. int m_maxCharInLine;   
  40. virtual void CalculateInfoBoxRect(UINT nControlID, CRect* pInfoRect);
  41. virtual void CalculateHeightAndWidth(CStringArray& straInfos);
  42. private:
  43. ToolTipInfo* IsControlIDExisting( UINT );
  44. void DisplayInfo( ToolTipInfo* );
  45. private:
  46. CObArray m_aControlInfo;
  47. UINT m_currentControlID;
  48. };
  49. #endif