GuiLabelButton.cpp
上传用户:zhanglf88
上传日期:2013-11-19
资源大小:6036k
文件大小:2k
- //-----------------------------------------------------------------------//
- // This is a part of the GuiLib MFC Extention. //
- // Autor : Francisco Campos //
- // (C) 2002 Francisco Campos <www.beyondata.com> All rights reserved //
- // This code is provided "as is", with absolutely no warranty expressed //
- // or implied. Any use is at your own risk. //
- // You must obtain the author's consent before you can include this code //
- // in a software library. //
- // If the source code in this file is used in any application //
- // then acknowledgement must be made to the author of this program //
- // fcampos@tutopia.com //
- //-----------------------------------------------------------------------//
- #include "stdafx.h"
- #include "guilabelbutton.h"
- #include "GuiDrawLayer.h"
- IMPLEMENT_DYNAMIC(CGuiLabelButton,CGuiToolButton)
- CGuiLabelButton::CGuiLabelButton(void)
- {
- m_cfont.CreateFont(14,0,0,0,FW_BOLD,0,0,0,0,1,2,1,34,"Arial");
- m_bDrawLine=FALSE;
- }
- CGuiLabelButton::~CGuiLabelButton(void)
- {
- }
- void CGuiLabelButton::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
- {
- CDC* pdc= CDC::FromHandle(lpDrawItemStruct->hDC);
- CRect rc=lpDrawItemStruct->rcItem;
- UINT uState=lpDrawItemStruct->itemState;
- CFont* m_OldFont;
- CBrush cb;
- int calculodify;
- cb.CreateSolidBrush(m_clColor); //deberia ser blanco
- m_OldFont=pdc->SelectObject(&m_cfont);
- pdc->FillRect(rc,&cb);
-
-
- calculodify=rc.Height()-(m_SizeImage.cy);
- calculodify/=2;
- CPoint m_point=CPoint(2,calculodify+1);
- if (m_SizeImage.cx > 2)
- {
- pdc->DrawState (m_point, m_SizeImage,m_Icon,
- (uState==ODS_DISABLED?DSS_DISABLED:DSS_NORMAL),(CBrush*)NULL);
- }
- if (m_SizeText.cx > 2)
- {
- int nMode = pdc->SetBkMode(TRANSPARENT);
- CRect rectletra=rc;
- rectletra.left+=m_SizeImage.cx > 0 ? m_SizeImage.cx+8: 0;
- CPoint pt=CSize(rectletra.top,rectletra.left);
- if (uState & ODS_DISABLED)
- pdc->DrawState(pt, m_SizeText, m_szText, DSS_DISABLED, TRUE, 0, (CBrush*)NULL);
- else
- pdc->DrawText(m_szText,rectletra,DT_SINGLELINE|DT_LEFT|DT_VCENTER);
- pdc->SetBkMode(nMode);
- }
- pdc->SelectObject(m_OldFont);
- if (m_bDrawLine)
- {
- CPen p(PS_SOLID,1,GuiDrawLayer::GetRGBColorShadow());
- CPen* pOldPen=pdc->SelectObject(&p);
- pdc->MoveTo(rc.left,rc.bottom-2);
- pdc->LineTo(rc.right,rc.bottom-2);
- pdc->SelectObject(pOldPen);
- }
- // TODO: Add your code to draw the specified item
- }