CJColorPicker.h
上传用户:xmgzsj
上传日期:2007-01-01
资源大小:46k
文件大小:4k
源码类别:

组合框控件

开发平台:

Visual C++

  1. #ifndef __CJCOLORPICKER_H__
  2. #define __CJCOLORPICKER_H__
  3. #if _MSC_VER >= 1000
  4. #pragma once
  5. #endif // _MSC_VER >= 1000
  6. // CJColorPicker.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 "CJColorPopup.h"
  23. /////////////////////////////////////////////////////////////////////////////
  24. // CCJColorPicker window
  25. void AFXAPI DDX_CJColorPicker(CDataExchange *pDX, int nIDC, COLORREF& crColor);
  26. /////////////////////////////////////////////////////////////////////////////
  27. // CCJColorPicker window
  28. #define CP_MODE_TEXT 1  // edit text Color
  29. #define CP_MODE_BK   2  // edit background Color (default)
  30. class CCJColorPicker : public CButton
  31. {
  32. // Construction
  33. public:
  34.     CCJColorPicker();
  35.     DECLARE_DYNCREATE(CCJColorPicker);
  36. // Attributes
  37. public:
  38.     COLORREF GetColor();
  39.     void     SetColor(COLORREF crColor); 
  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     SetBkColor(COLORREF crColorBk);
  47.     COLORREF GetBkColor()                             { return m_crColorBk; }
  48.     
  49.     void     SetTextColor(COLORREF crColorText);
  50.     COLORREF GetTextColor()                           { return m_crColorText;}
  51. // Operations
  52. public:
  53. // Overrides
  54.     // ClassWizard generated virtual function overrides
  55.     //{{AFX_VIRTUAL(CCJColorPicker)
  56.     public:
  57.     virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
  58.     protected:
  59.     virtual void PreSubclassWindow();
  60.     //}}AFX_VIRTUAL
  61. // Implementation
  62. public:
  63.     virtual ~CCJColorPicker();
  64. protected:
  65.     void SetWindowSize();
  66. // protected attributes
  67. protected:
  68.     BOOL     m_bActive,                // Is the dropdown active?
  69.              m_bTrackSelection;        // track Color changes?
  70.     COLORREF m_crColorBk;
  71.     COLORREF m_crColorText;
  72.     UINT     m_nSelectionMode;
  73.     CRect    m_ArrowRect;
  74.     CString  m_strDefaultText;
  75.     CString  m_strCustomText;
  76. bool  m_bLBtnDown;
  77.     // Generated message map functions
  78. protected:
  79.     //{{AFX_MSG(CCJColorPicker)
  80.     afx_msg BOOL OnClicked();
  81.     afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
  82. //}}AFX_MSG
  83.     afx_msg LONG OnSelEndOK(UINT lParam, LONG wParam);
  84.     afx_msg LONG OnSelEndCancel(UINT lParam, LONG wParam);
  85.     afx_msg LONG OnSelChange(UINT lParam, LONG wParam);
  86.     DECLARE_MESSAGE_MAP()
  87. };
  88. /////////////////////////////////////////////////////////////////////////////
  89. //{{AFX_INSERT_LOCATION}}
  90. // Microsoft Developer Studio will insert additional declarations immediately before the previous line.
  91. #endif // !defined(__CJCOLORPICKER_H__)