ColourPicker.h
上传用户:wlkj888
上传日期:2022-08-01
资源大小:806k
文件大小: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)              { m_nSelectionMode = nMode; }
  45.     UINT     GetSelectionMode()                        { return m_nSelectionMode; };
  46.     void     SetBkColour(COLORREF crColourBk);
  47.     COLORREF GetBkColour()                             { return m_crColourBk; }
  48.     
  49.     void     SetTextColour(COLORREF crColourText);
  50.     COLORREF GetTextColour()                           { return m_crColourText;}
  51. // Operations
  52. public:
  53. // Overrides
  54.     // ClassWizard generated virtual function overrides
  55.     //{{AFX_VIRTUAL(CColourPicker)
  56.     public:
  57.     virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
  58.     protected:
  59.     virtual void PreSubclassWindow();
  60.     //}}AFX_VIRTUAL
  61. // Implementation
  62. public:
  63.     virtual ~CColourPicker();
  64. protected:
  65.     void SetWindowSize();
  66. // protected attributes
  67. protected:
  68.     BOOL     m_bActive,                // Is the dropdown active?
  69.              m_bTrackSelection;        // track colour changes?
  70.     COLORREF m_crColourBk;
  71.     COLORREF m_crColourText;
  72.     UINT     m_nSelectionMode;
  73.     CRect    m_ArrowRect;
  74.     CString  m_strDefaultText;
  75.     CString  m_strCustomText;
  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_)