ColourPicker.h
上传用户:zhoushen
上传日期:2022-06-15
资源大小:84k
文件大小: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 (chrismaunder@codeguru.com)
  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.     COLORREF GetColour();
  39.     void     SetColour(COLORREF crColour); 
  40.     void     SetDefaultText(LPCTSTR szDefaultText);
  41.     void     SetCustomText(LPCTSTR szCustomText);
  42.     void     SetTrackSelection(BOOL bTracking = TRUE)  { m_bTrackSelection = bTracking; }
  43.     BOOL     GetTrackSelection()                       { return m_bTrackSelection; }
  44.     void     SetSelectionMode(UINT nMode)              
  45. m_nSelectionMode = nMode; 
  46. }
  47.     UINT     GetSelectionMode()                        { return m_nSelectionMode; };
  48.     void     SetBkColour(COLORREF crColourBk);
  49.     COLORREF GetBkColour()                             { return m_crColourBk; }
  50.     
  51.     void     SetTextColour(COLORREF crColourText);
  52.     COLORREF GetTextColour()                           { return m_crColourText;}
  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.     CString  m_strDefaultText;
  77.     CString  m_strCustomText;
  78.     // Generated message map functions
  79. protected:
  80.     //{{AFX_MSG(CColourPicker)
  81.     afx_msg BOOL OnClicked();
  82.     afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
  83.     //}}AFX_MSG
  84.     afx_msg LONG OnSelEndOK(UINT lParam, LONG wParam);
  85.     afx_msg LONG OnSelEndCancel(UINT lParam, LONG wParam);
  86.     afx_msg LONG OnSelChange(UINT lParam, LONG wParam);
  87.     DECLARE_MESSAGE_MAP()
  88. };
  89. /////////////////////////////////////////////////////////////////////////////
  90. //{{AFX_INSERT_LOCATION}}
  91. // Microsoft Developer Studio will insert additional declarations immediately before the previous line.
  92. #endif // !defined(AFX_COLOURPICKER_H__D0B75901_9830_11D1_9C0F_00A0243D1382__INCLUDED_)