⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 colorbtn.h

📁 Visual C++图形用户界面开发指南 李博轩等编著 配套源码光盘
💻 H
字号:
#ifndef _COLORBTN_H_
#define _COLORBTN_H_

#include <afxtempl.h>

class CColorBtnDlg : public CDialog
{
// Construction
public:
enum COLOR_DIALOG_CONSTANTS
   {
   MIN_WELL_WIDTH = 5,
   MIN_WELL_HEIGHT = 5,
   MIN_INNER_BORDER = 0,
   MAX_INNER_BORDER = 5,
   MIN_OUTER_BORDER = 0,
   MAX_OUTER_BORDER = 10,
   MIN_NUMCOLORWELLCOLS = 1,
   MAX_NUMCOLORWELLCOLS = 40
   };
	
   CButton *m_Parent;

   CArray<COLORREF, COLORREF&> m_Colors;
   COLORREF m_SelectedColor;
   
   CColorBtnDlg(CWnd* pParent = NULL);   // standard constructor
   ~CColorBtnDlg();
   
   short m_DialogWidth;
   short m_NumColorWellColumns;
   short m_ColorWellHeight;
   short m_OuterBorderThickness;
   short m_InnerBorderThickness;
   UINT  m_StartingButtonID;
   BOOL  m_IsotropicWells;

private:
   DLGTEMPLATE m_dlgTempl;
   HGLOBAL m_GlobalLock;

public:
// Dialog Data
	//{{AFX_DATA(CColorBtnDlg)
		// NOTE: the ClassWizard will add data members here
	//}}AFX_DATA

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CColorBtnDlg)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:
   
	// Generated message map functions
	//{{AFX_MSG(CColorBtnDlg)
	virtual BOOL OnInitDialog();
	afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
	afx_msg void OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct);
	afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
	//}}AFX_MSG

	void OnColor(UINT id);    
   void EndDialog( int nResult );
   void CreateDialogFromTemplate();

	DECLARE_MESSAGE_MAP()

};



class CColorBtn : public CButton
{
// Construction
public:
   enum {
      RECTANGLE,
      ELLIPSE,
      TRIANGLE,
      HEX
      } shapes;

    CColorBtn();

   COLORREF m_CurrentColor;
   
   void ClearColorWells();
   void AddColorWell(COLORREF Color);
   void SetColorsFromArray(CArray<COLORREF, COLORREF&>* ColorArray);
   void SetBorderThickness(short Outer, short Inner);
   void SetDialogWidth(short Width);
   void SetNumColorWellColumns(short NumCols);
   void SetColorWellHeight(short Height);
   void MakeColorWellsIsotropic(BOOL Yes = TRUE);
   void SetColorWellShape(short Shape);
   short GetColorWellShape();


   static void Serialize( CArchive& ar );
   
   void SetSelectedColor(COLORREF Color);  
   COLORREF GetColor();

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CColorBtn)
	//}}AFX_VIRTUAL

// Implementation
public:
	virtual ~CColorBtn();

	// Generated message map functions
protected:
	//{{AFX_MSG(CColorBtn)
	afx_msg void OnClicked();
	//}}AFX_MSG

    void DrawItem(LPDRAWITEMSTRUCT);

	DECLARE_MESSAGE_MAP()

private:

    CPen *m_OldPen;
    CBrush *m_OldBrush;
    CPen m_BlackPen;
    CPen m_DkGrayPen;
    CPen m_WhitePen;
    CBrush m_BackBrush;
    CBrush m_NullBrush;
    CPen m_NullPen;

    CColorBtnDlg m_ColorDlg;
    short m_ColorWellShape;
};




#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -