📄 coloredit.h
字号:
#if !defined _COLOREDIT_H_
#define _COLOREDIT_H_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// ColorEdit.h : header file
//
//#include "TrackControl.h"
/////////////////////////////////////////////////////////////////////////////
// CColorEdit window
template<class BaseClass>
/////////////////////////////////////////////////////////////////////////////
// CTrackControl window
class CTrackControl : public BaseClass
{
// Construction
public:
CTrackControl()
{
m_bTracking=m_bHover=FALSE;
}
virtual ~CTrackControl() {}
BOOLEAN IsHover()
{
return m_bHover;
}
// Implementation
public:
virtual void OnHoverEnter()=0;
virtual void OnHoverLeave()=0;
// Generated message map functions
protected:
virtual LRESULT WindowProc(UINT nMessage, WPARAM wParam, LPARAM lParam)
{
LRESULT nResult=BaseClass::WindowProc(nMessage,wParam,lParam);
switch(nMessage)
{
case WM_MOUSEMOVE:
{
if (!m_bTracking)
{
TRACKMOUSEEVENT Tme;
Tme.cbSize = sizeof(Tme);
Tme.hwndTrack = GetSafeHwnd();
Tme.dwFlags = TME_LEAVE|TME_HOVER;
Tme.dwHoverTime = 1;
if (_TrackMouseEvent(&Tme))
m_bTracking=TRUE;
}
break;
}
case WM_MOUSEHOVER:
m_bHover=TRUE;
OnHoverEnter();
break;
case WM_MOUSELEAVE:
m_bTracking=m_bHover=FALSE;
OnHoverLeave();
break;
}
return nResult;
}
private:
BOOLEAN m_bTracking;
BOOLEAN m_bHover;
};
class CColorEdit : public CTrackControl<CEdit>
{
// Construction
public:
CColorEdit();
// Attributes
public:
// Operations
public:
CBitmap m_Bitmap;
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CColorEdit)
//}}AFX_VIRTUAL
// Implementation
public:
virtual void OnHoverLeave();
virtual void OnHoverEnter();
virtual ~CColorEdit();
HBRUSH m_bkBrush;
// Generated message map functions
protected:
//{{AFX_MSG(CColorEdit)
afx_msg void OnNcPaint();
afx_msg void OnPaint( );
afx_msg HBRUSH CtlColor(CDC* pDC, UINT nCtlColor);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
private:
inline void Redraw();
};
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_COLOREDIT_H__F48CB3C3_AFAC_4AF7_8387_34D254A31611__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -