www.pudn.com > News Search3.01.rar > ColorPopup.h


#if !defined(AFX_COLORPOPUP_H__BB48B101_C5DB_11D4_B45A_00104B1269BD__INCLUDED_) 
#define AFX_COLORPOPUP_H__BB48B101_C5DB_11D4_B45A_00104B1269BD__INCLUDED_ 
 
#if _MSC_VER > 1000 
#pragma once 
#endif // _MSC_VER > 1000 
// ColorPopup.h : header file 
// 
#include "Resource.h" 
 
///////////////////////////////////////////////////////////////////////////// 
// CColorPopup window 
 
// CColorPopup messages 
#define CPN_SELCHANGE        WM_USER + 1001        // Color Picker Selection change 
#define CPN_DROPDOWN         WM_USER + 1002        // Color Picker drop down 
#define CPN_CLOSEUP          WM_USER + 1003        // Color Picker close up 
#define CPN_SELENDOK         WM_USER + 1004        // Color Picker end OK 
#define CPN_SELENDCANCEL     WM_USER + 1005        // Color Picker end (cancelled) 
 
// forward declaration 
class CColorPicker; 
 
// To hold the colors and their names 
typedef struct { 
    COLORREF crColor; 
    TCHAR    szName[20]; 
} ColorTable; 
 
class CColorPopup : public CWnd 
{ 
// Construction 
public: 
	CColorPopup(); 
    CColorPopup(CPoint p, COLORREF crColor, CWnd* pParentWnd, 
                 LPCTSTR szDefaultText = NULL, LPCTSTR szCustomText = NULL); 
    void Initialise(); 
 
// Attributes 
public: 
 
// Operations 
public: 
    BOOL Create(CPoint p, COLORREF crColor, CWnd* pParentWnd,  
                LPCTSTR szDefaultText = NULL, LPCTSTR szCustomText = NULL); 
 
// Overrides 
	// ClassWizard generated virtual function overrides 
	//{{AFX_VIRTUAL(CColorPopup) 
	public: 
	virtual BOOL PreTranslateMessage(MSG* pMsg); 
	//}}AFX_VIRTUAL 
 
// Implementation 
public: 
	virtual ~CColorPopup(); 
 
protected: 
    BOOL GetCellRect(int nIndex, const LPRECT& rect); 
    void FindCellFromColor(COLORREF crColor); 
    void SetWindowSize(); 
    void CreateToolTips(); 
    void ChangeSelection(int nIndex); 
    void EndSelection(int nMessage); 
    void DrawCell(CDC* pDC, int nIndex); 
	HBITMAP CreateDitherBitmap(); 
 
    COLORREF GetColor(int nIndex)              { return m_crColors[nIndex].crColor; } 
    LPCTSTR GetColorName(int nIndex)           { return m_crColors[nIndex].szName; } 
    int  GetIndex(int row, int col) const; 
    int  GetRow(int nIndex) const; 
    int  GetColumn(int nIndex) const; 
 
// protected attributes 
protected: 
    static ColorTable m_crColors[]; 
    int            m_nNumColors; 
    int            m_nNumColumns, m_nNumRows; 
    int            m_nBoxSize, m_nMargin; 
    int            m_nCurrentSel; 
    int            m_nChosenColorSel; 
    CString        m_strDefaultText; 
    CString        m_strCustomText; 
    CRect          m_CustomTextRect, m_DefaultTextRect, m_WindowRect; 
    CFont          m_Font; 
    CPalette       m_Palette; 
    COLORREF       m_crInitialColor, m_crColor; 
    CToolTipCtrl   m_ToolTip; 
    CWnd*          m_pParent; 
 
    BOOL           m_bChildWindowVisible; 
 
	// Generated message map functions 
protected: 
	//{{AFX_MSG(CColorPopup) 
	afx_msg void OnNcDestroy(); 
	afx_msg void OnLButtonUp(UINT nFlags, CPoint point); 
	afx_msg void OnPaint(); 
	afx_msg void OnMouseMove(UINT nFlags, CPoint point); 
	afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags); 
	afx_msg BOOL OnQueryNewPalette(); 
	afx_msg void OnPaletteChanged(CWnd* pFocusWnd); 
	afx_msg void OnKillFocus(CWnd* pNewWnd); 
	afx_msg void OnActivateApp(BOOL bActive, HTASK hTask); 
	//}}AFX_MSG 
	DECLARE_MESSAGE_MAP() 
}; 
 
///////////////////////////////////////////////////////////////////////////// 
 
//{{AFX_INSERT_LOCATION}} 
// Microsoft Visual C++ will insert additional declarations immediately before the previous line. 
 
#endif // !defined(AFX_COLORPOPUP_H__BB48B101_C5DB_11D4_B45A_00104B1269BD__INCLUDED_)