ColourPopup.h
上传用户:yangzi5763
上传日期:2007-01-02
资源大小:239k
文件大小:5k
源码类别:

ActiveX/DCOM/ATL

开发平台:

Visual C++

  1. #if !defined(AFX_COLOURPOPUP_H__D0B75902_9830_11D1_9C0F_00A0243D1382__INCLUDED_)
  2. #define AFX_COLOURPOPUP_H__D0B75902_9830_11D1_9C0F_00A0243D1382__INCLUDED_
  3. #if _MSC_VER >= 1000
  4. #pragma once
  5. #endif // _MSC_VER >= 1000
  6. #include <afxcmn.h>
  7. // ColourPopup.h : header file
  8. //
  9. // Written by Chris Maunder (Chris.Maunder@cbr.clw.csiro.au)
  10. // Extended by Alexander Bischofberger (bischofb@informatik.tu-muenchen.de)
  11. // Copyright (c) 1998.
  12. //
  13. // This code may be used in compiled form in any way you desire. This
  14. // file may be redistributed unmodified by any means PROVIDING it is 
  15. // not sold for profit without the authors written consent, and 
  16. // providing that this notice and the authors name is included. If 
  17. // the source code in  this file is used in any commercial application 
  18. // then a simple email would be nice.
  19. //
  20. // This file is provided "as is" with no expressed or implied warranty.
  21. // The author accepts no liability if it causes any damage whatsoever.
  22. // It's free - so you get what you pay for.
  23. // CColourPopup messages
  24. #define CPN_SELCHANGE        WM_USER + 1001        // Colour Picker Selection change
  25. #define CPN_DROPDOWN         WM_USER + 1002        // Colour Picker drop down
  26. #define CPN_CLOSEUP          WM_USER + 1003        // Colour Picker close up
  27. #define CPN_SELENDOK         WM_USER + 1004        // Colour Picker end OK
  28. #define CPN_SELENDCANCEL     WM_USER + 1005        // Colour Picker end (cancelled)
  29. // forward declaration
  30. class CColourPicker;
  31. // To hold the colours and their names
  32. typedef struct {
  33.     COLORREF crColour;
  34.     TCHAR    *szName;
  35. } ColourTableEntry;
  36. /////////////////////////////////////////////////////////////////////////////
  37. // CColourPopup window
  38. class CColourPopup : public CWnd
  39. {
  40. friend class CControlsWnd_CColorComboBox;
  41. // Construction
  42. public:
  43.     CColourPopup();
  44.     CColourPopup(CPoint p, COLORREF crColour, CWnd* pParentWnd,
  45.                  LPCTSTR szDefaultText = NULL, LPCTSTR szCustomText = NULL);
  46.     void Initialise();
  47. // Attributes
  48. public:
  49. // Operations
  50. public:
  51.     BOOL Create(CPoint p, COLORREF crColour, CWnd* pParentWnd, 
  52.                 LPCTSTR szDefaultText = NULL, LPCTSTR szCustomText = NULL);
  53. // Overrides
  54.     // ClassWizard generated virtual function overrides
  55.     //{{AFX_VIRTUAL(CColourPopup)
  56.     public:
  57.     virtual BOOL PreTranslateMessage(MSG* pMsg);
  58.     //}}AFX_VIRTUAL
  59. // Implementation
  60. public:
  61. static int FindColor(COLORREF crColor);
  62.     virtual ~CColourPopup();
  63. protected:
  64.     BOOL GetCellRect(int nIndex, const LPRECT& rect);
  65.     void FindCellFromColour(COLORREF crColour);
  66.     void SetWindowSize();
  67.     void CreateToolTips();
  68.     void ChangeSelection(int nIndex);
  69.     void EndSelection(int nMessage);
  70.     void DrawCell(CDC* pDC, int nIndex);
  71.     static COLORREF GetColour(int nIndex)              { return m_crColours[nIndex].crColour; }
  72.     static LPCTSTR GetColourName(int nIndex)           { return m_crColours[nIndex].szName; }
  73.     int  GetIndex(int row, int col) const;
  74.     int  GetRow(int nIndex) const;
  75.     int  GetColumn(int nIndex) const;
  76. // protected attributes
  77. protected:
  78.     static ColourTableEntry m_crColours[];
  79.     static int            m_nNumColours;
  80.     int            m_nNumColumns, m_nNumRows;
  81.     int            m_nBoxSize, m_nMargin;
  82.     int            m_nCurrentSel;
  83.     int            m_nChosenColourSel;
  84.     CString        m_strDefaultText;
  85.     CString        m_strCustomText;
  86.     CRect          m_CustomTextRect, m_DefaultTextRect, m_WindowRect;
  87.     CFont          m_Font;
  88.     CPalette       m_Palette;
  89.     COLORREF       m_crInitialColour, m_crColour;
  90.     CToolTipCtrl   m_ToolTip;
  91.     CWnd*          m_pParent;
  92.     // Generated message map functions
  93. protected:
  94.     //{{AFX_MSG(CColourPopup)
  95.     afx_msg void OnNcDestroy();
  96.     afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
  97.     afx_msg void OnPaint();
  98.     afx_msg void OnMouseMove(UINT nFlags, CPoint point);
  99.     afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
  100.     afx_msg BOOL OnQueryNewPalette();
  101.     afx_msg void OnPaletteChanged(CWnd* pFocusWnd);
  102. afx_msg void OnKillFocus(CWnd* pNewWnd);
  103. afx_msg void OnActivateApp(BOOL bActive, HTASK hTask);
  104. //}}AFX_MSG
  105.     DECLARE_MESSAGE_MAP()
  106. };
  107. /////////////////////////////////////////////////////////////////////////////
  108. //{{AFX_INSERT_LOCATION}}
  109. // Microsoft Developer Studio will insert additional declarations immediately before the previous line.
  110. #endif // !defined(AFX_COLOURPOPUP_H__D0B75902_9830_11D1_9C0F_00A0243D1382__INCLUDED_)