#include "stdafx.h"
|
#include "GridCell.h"
|
#include "GridCtrl.h"
|
#include "GridCellButton.h"
|
|
|
#ifdef _DEBUG
|
#define new DEBUG_NEW
|
#undef THIS_FILE
|
static char THIS_FILE[] = __FILE__;
|
#endif
|
|
IMPLEMENT_DYNCREATE(CGridCellButton, CGridCell)
|
CGridCellButton::CGridCellButton(void)
|
{
|
m_bPushing = FALSE;
|
}
|
|
CGridCellButton::~CGridCellButton(void)
|
{
|
}
|
|
BOOL CGridCellButton::Draw(CDC* pDC, int nRow, int nCol, CRect rect, BOOL bEraseBkgnd /* = TRUE */)
|
{
|
m_rect = rect;
|
pDC->SetBkMode(TRANSPARENT);
|
rect.DeflateRect(GetMargin(), 0);
|
CFont* pOldFont = pDC->SelectObject(GetFontObject());
|
pDC->DrawFrameControl(rect, DFC_BUTTON, m_bPushing ? DFCS_BUTTONPUSH | DFCS_PUSHED : DFCS_BUTTONPUSH);
|
COLORREF ColorCurrent = pDC->GetTextColor();
|
pDC->SetTextColor(::GetSysColor(COLOR_BTNTEXT));
|
pDC->DrawText(GetText(), -1, rect, DT_CENTER | DT_VCENTER | DT_SINGLELINE | DT_END_ELLIPSIS);
|
pDC->SetTextColor(ColorCurrent);
|
return TRUE;
|
}
|
|
void CGridCellButton::OnClick(CPoint PointCellRelative)
|
{
|
m_bPushing = !m_bPushing;
|
GetGrid()->InvalidateRect(m_rect);
|
}
|
|
void CGridCellButton::OnMouseLeave()
|
{
|
m_bPushing = FALSE;
|
GetGrid()->InvalidateRect(m_rect);
|
}
|