ColourPicker.h
上传用户:wujian85
上传日期:2010-04-08
资源大小:227k
文件大小:4k
源码类别:

对话框与窗口

开发平台:

Visual C++

  1. #if !defined(AFX_COLOURPICKER_H__D0B75901_9830_11D1_9C0F_00A0243D1382__INCLUDED_)
  2. #define AFX_COLOURPICKER_H__D0B75901_9830_11D1_9C0F_00A0243D1382__INCLUDED_
  3. #if _MSC_VER >= 1000
  4. #pragma once
  5. #endif // _MSC_VER >= 1000
  6. // ColourPicker.h : header file
  7. //
  8. // Written by Chris Maunder (Chris.Maunder@cbr.clw.csiro.au)
  9. // Extended by Alexander Bischofberger (bischofb@informatik.tu-muenchen.de)
  10. // Copyright (c) 1998.
  11. //
  12. // This code may be used in compiled form in any way you desire. This
  13. // file may be redistributed unmodified by any means PROVIDING it is 
  14. // not sold for profit without the authors written consent, and 
  15. // providing that this notice and the authors name is included. If 
  16. // the source code in  this file is used in any commercial application 
  17. // then a simple email would be nice.
  18. //
  19. // This file is provided "as is" with no expressed or implied warranty.
  20. // The author accepts no liability if it causes any damage whatsoever.
  21. // It's free - so you get what you pay for.
  22. #include "ColourPopup.h"
  23. /////////////////////////////////////////////////////////////////////////////
  24. // CColourPicker window
  25. void AFXAPI DDX_ColourPicker(CDataExchange *pDX, int nIDC, COLORREF& crColour);
  26. /////////////////////////////////////////////////////////////////////////////
  27. // CColourPicker window
  28. #define CP_MODE_TEXT 1  // edit text colour
  29. #define CP_MODE_BK   2  // edit background colour (default)
  30. class CColourPicker : public CButton
  31. {
  32. // Construction
  33. public:
  34.     CColourPicker();
  35.     DECLARE_DYNCREATE(CColourPicker);
  36. // Attributes
  37. public:
  38.     void     SetBkColour(COLORREF crColourBk);
  39.     COLORREF GetBkColour()          { return m_crColourBk; }
  40.     
  41.     void     SetTextColour(COLORREF crColourText);
  42.     COLORREF GetTextColour()        { return m_crColourText;}
  43.     
  44.     void     SetTrackSelection(BOOL bTracking = TRUE)  { m_bTrackSelection = bTracking; }
  45.     BOOL     GetTrackSelection()                       { return m_bTrackSelection; }
  46.     void     SetSelectionMode(UINT nMode) { m_nSelectionMode = nMode; }
  47.     UINT     GetSelectionMode()     { return m_nSelectionMode; };
  48.     COLORREF GetColour()            { return (m_nSelectionMode == CP_MODE_TEXT)? 
  49.                                       GetTextColour(): GetBkColour(); }
  50.     void     SetColour(COLORREF crColour) 
  51.                                     { (m_nSelectionMode == CP_MODE_TEXT)? 
  52.                                        SetTextColour(crColour): SetBkColour(crColour); }
  53. // Operations
  54. public:
  55. // Overrides
  56.     // ClassWizard generated virtual function overrides
  57.     //{{AFX_VIRTUAL(CColourPicker)
  58.     public:
  59.     virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
  60.     protected:
  61.     virtual void PreSubclassWindow();
  62.     //}}AFX_VIRTUAL
  63. // Implementation
  64. public:
  65.     virtual ~CColourPicker();
  66. protected:
  67.     void SetWindowSize();
  68. // protected attributes
  69. protected:
  70.     BOOL     m_bActive,                // Is the dropdown active?
  71.              m_bTrackSelection;        // track colour changes?
  72.     COLORREF m_crColourBk;
  73.     COLORREF m_crColourText;
  74.     UINT     m_nSelectionMode;
  75.     CRect    m_ArrowRect;
  76.     // Generated message map functions
  77. protected:
  78.     //{{AFX_MSG(CColourPicker)
  79.     afx_msg BOOL OnClicked();
  80.     afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
  81.     //}}AFX_MSG
  82.     afx_msg LONG OnSelEndOK(UINT lParam, LONG wParam);
  83.     afx_msg LONG OnSelEndCancel(UINT lParam, LONG wParam);
  84.     afx_msg LONG OnSelChange(UINT lParam, LONG wParam);
  85.     DECLARE_MESSAGE_MAP()
  86. };
  87. /////////////////////////////////////////////////////////////////////////////
  88. //{{AFX_INSERT_LOCATION}}
  89. // Microsoft Developer Studio will insert additional declarations immediately before the previous line.
  90. #endif // !defined(AFX_COLOURPICKER_H__D0B75901_9830_11D1_9C0F_00A0243D1382__INCLUDED_)