#include "StdAfx.h" #include "akStaticTextCtrl.h" #include "akStaticText.h" CakStaticTextCtrl::CakStaticTextCtrl(void) { } CakStaticTextCtrl::~CakStaticTextCtrl(void) { clear(); } void CakStaticTextCtrl::clear() { std::map::iterator itor; for(itor = m_mapControls.begin(); itor!=m_mapControls.end(); itor++) { CakStaticText* pControl = (CakStaticText*)itor->second; pControl->DestroyWindow(); delete pControl; } m_mapControls.clear(); } void CakStaticTextCtrl::addControl( int nIDCtl, CWnd* pParent ) { _StaticTextCtrlOption* pOption = &m_CtrlOption; if(pOption->nStyle == 0) { } else if(pOption->nStyle == 1) { CakStaticText* pControl; std::map::iterator itor = m_mapControls.find(nIDCtl); if(itor != m_mapControls.end()) { pControl = (CakStaticText*)m_mapControls[nIDCtl]; } else { pControl = new CakStaticText; pControl->SubclassDlgItem(nIDCtl, pParent); } char *pFontName = NULL; if(pOption->strFontName.IsEmpty() == FALSE) pFontName = (char*)pOption->strFontName.GetBuffer(); if(pFontName) pControl->setFont(pFontName); pControl->setFontSize(pOption->nFontSize); pControl->SetFastMode(); pControl->setColor(pOption->clrTitle,pOption->clrBack); pControl->SetAlign(pOption->nTextAlign); pControl->setOutLine(pOption->nDrawOutlineType, pOption->clrOutline); m_mapControls[nIDCtl] = (void*)pControl; //m_mapControls.push_back((void*)pControl); } } void CakStaticTextCtrl::setCtrlOption( _StaticTextCtrlOption GroupCtrlOption ) { // if(m_CtrlOption.strFontName != GroupCtrlOption.strFontName // || m_CtrlOption.nFontSize != GroupCtrlOption.nFontSize) // { // _StaticTextCtrlOption* pOption = &m_CtrlOption; // if(pOption->nStyle == 0) // { // char *pFontName = NULL; // if(GroupCtrlOption.strFontName.IsEmpty() == FALSE) pFontName = GroupCtrlOption.strFontName.GetBuffer(); // // std::map::iterator itor; // for(itor = m_mapControls.begin(); itor!=m_mapControls.end(); itor++) // { // CakStaticText* pControl = (CakStaticText*)itor->second; // pControl->setFont(pFontName, GroupCtrlOption.nFontSize); // } // // // } // // } m_CtrlOption=GroupCtrlOption; } CStatic* CakStaticTextCtrl::GetDlgItem( int nIDCtl ) { return (CStatic*)m_mapControls[nIDCtl]; }