102 lines
3.3 KiB
C++
102 lines
3.3 KiB
C++
// Written by Marius Bancila (mbancila@yahoo.com)
|
|
// Copyright (c) 2004.
|
|
//
|
|
// This code may be used in compiled form in any way you desire. This
|
|
// file may be redistributed unmodified by any means PROVIDING it is
|
|
// not sold for profit without the authors written consent, and
|
|
// providing that this notice and the authors name is included. If
|
|
// the source code in this file is used in any commercial application
|
|
// then acknowledgement must be made to the author of this file
|
|
// (in whatever form you wish).
|
|
//
|
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
// THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
|
// IN THE SOFTWARE.
|
|
//
|
|
// Please use and enjoy. Please let me know of any bugs/mods/improvements
|
|
// that you have found/implemented and I will fix/incorporate them into this
|
|
// file.
|
|
|
|
|
|
#if !defined(AFX_COLORBUTTON_H__EB5FACDB_272F_4883_A997_659DDA42FD38__INCLUDED_)
|
|
#define AFX_COLORBUTTON_H__EB5FACDB_272F_4883_A997_659DDA42FD38__INCLUDED_
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif // _MSC_VER > 1000
|
|
// ColorButton.h : header file
|
|
//
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CColorButton window
|
|
|
|
class CColorButton : public CButton
|
|
{
|
|
private:
|
|
enum { BUTTON_IN = 0x01,
|
|
BUTTON_OUT = 0x02,
|
|
BUTTON_BLACK_BORDER = 0x04,};
|
|
|
|
// Construction
|
|
public:
|
|
CColorButton();
|
|
CColorButton(COLORREF text, COLORREF bkgnd);
|
|
CColorButton(COLORREF text, COLORREF bkgnd, COLORREF disabled);
|
|
CColorButton(COLORREF text, COLORREF bkgnd, COLORREF disabled, COLORREF light, COLORREF highlight, COLORREF shadow, COLORREF darkShadow);
|
|
|
|
// Attributes
|
|
public:
|
|
|
|
private:
|
|
COLORREF m_TextColor;
|
|
COLORREF m_BkgndColor;
|
|
COLORREF m_DisabledBkgndColor;
|
|
COLORREF m_Light;
|
|
COLORREF m_Highlight;
|
|
COLORREF m_Shadow;
|
|
COLORREF m_DarkShadow;
|
|
|
|
// Operations
|
|
public:
|
|
void SetColor(COLORREF text, COLORREF bkgnd);
|
|
void SetColor(COLORREF text, COLORREF bkgnd, COLORREF disabled);
|
|
void SetColor(COLORREF text, COLORREF bkgnd, COLORREF disabled, COLORREF light, COLORREF highlight, COLORREF shadow, COLORREF darkShadow);
|
|
void SetColorToWindowsDefault();
|
|
|
|
private:
|
|
void DrawFrame(CDC *pDC, CRect rc, int state);
|
|
void DrawFilledRect(CDC *pDC, CRect rc, COLORREF color);
|
|
void DrawLine(CDC *pDC, long sx, long sy, long ex, long ey, COLORREF color);
|
|
void DrawButtonText(CDC *pDC, CRect rc, CString strCaption, COLORREF textcolor);
|
|
|
|
// Overrides
|
|
// ClassWizard generated virtual function overrides
|
|
//{{AFX_VIRTUAL(CColorButton)
|
|
public:
|
|
virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
|
|
//}}AFX_VIRTUAL
|
|
|
|
// Implementation
|
|
public:
|
|
virtual ~CColorButton();
|
|
|
|
// Generated message map functions
|
|
protected:
|
|
//{{AFX_MSG(CColorButton)
|
|
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
|
|
//}}AFX_MSG
|
|
|
|
DECLARE_MESSAGE_MAP()
|
|
};
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
//{{AFX_INSERT_LOCATION}}
|
|
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
|
|
|
#endif // !defined(AFX_COLORBUTTON_H__EB5FACDB_272F_4883_A997_659DDA42FD38__INCLUDED_)
|