void SItemPanel::Draw(IRenderTarget *pRT,const CRect & rc) { UpdateLayout(); m_style.m_crBg=m_crBk; if((m_dwState & WndState_Hover) && m_crHover != CR_INVALID) m_style.m_crBg=m_crHover; if((m_dwState & WndState_Check) && m_crSelBk != CR_INVALID) m_style.m_crBg=m_crSelBk; //不继承宿主的字体,从系统字体开始 SPainter painter; BeforePaint(pRT,painter); CAutoRefPtr<IRegion> rgn; pRT->GetClipRegion(&rgn); pRT->OffsetViewportOrg(rc.left,rc.top); if(rgn) { rgn->Offset(-rc.TopLeft()); } BuildWndTreeZorder(); RedrawRegion(pRT,rgn); pRT->OffsetViewportOrg(-rc.left,-rc.top); AfterPaint(pRT,painter); }