www.pudn.com > 4533566799.rar > ColorPopup.h


//贵州省安顺市第二高级中学 高二一班 蒋伟	 
//2002.7.1 
//请勿修改版权信息 谢谢 
//Neil 
// 
#if !defined(AFX_COLOURPOPUP_H__D0B75902_9830_11D1_9C0F_00A0243D1382__INCLUDED_) 
#define AFX_COLOURPOPUP_H__D0B75902_9830_11D1_9C0F_00A0243D1382__INCLUDED_ 
 
#if _MSC_VER >= 1000 
#pragma once 
#endif // _MSC_VER >= 1000 
 
// CColorPopup messages 
#define CPN_SELCHANGE        WM_USER + 1001        // Colour Picker Selection change 
#define CPN_DROPDOWN         WM_USER + 1002        // Colour Picker drop down 
#define CPN_CLOSEUP          WM_USER + 1003        // Colour Picker close up 
#define CPN_SELENDOK         WM_USER + 1004        // Colour Picker end OK 
#define CPN_SELENDCANCEL     WM_USER + 1005        // Colour Picker end (cancelled) 
 
// forward declaration 
class CColourPicker; 
 
// To hold the colours and their names 
typedef struct { 
    COLORREF crColor; 
    TCHAR    *szName; 
} ColorTableEntry; 
 
///////////////////////////////////////////////////////////////////////////// 
// CColorPopup window 
 
class CColorPopup : public CDialog//CWnd 
{ 
// Construction 
public: 
    CColorPopup(); 
    CColorPopup(CPoint p, COLORREF crColour, CWnd* pParentWnd, 
                 LPCTSTR szDefaultText = NULL, LPCTSTR szCustomText = NULL); 
    void Initialise(); 
 
private: 
	void	DrawName(CDC *pDC,CRect namerect); 
 
// 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); 
 
    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 ColorTableEntry 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; 
    COLORREF	   m_crDefaultColor; 
	CToolTipCtrl   m_ToolTip; 
    CWnd*          m_pParent; 
	 
    // 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 BOOL OnEraseBkgnd(CDC* pDC); 
	afx_msg void OnLButtonDown(UINT nFlags, CPoint point); 
	//}}AFX_MSG 
    DECLARE_MESSAGE_MAP() 
}; 
 
///////////////////////////////////////////////////////////////////////////// 
 
//{{AFX_INSERT_LOCATION}} 
// Microsoft Developer Studio will insert additional declarations immediately before the previous line. 
 
#endif // !defined(AFX_COLOURPOPUP_H__D0B75902_9830_11D1_9C0F_00A0243D1382__INCLUDED_)