��������: Invalidate ��������: void ����˵��:
| 148 | // ����˵��: |
| 149 | //************************************ |
| 150 | void CTreeNodeUI::Invalidate() |
| 151 | { |
| 152 | if( !IsVisible() ) |
| 153 | return; |
| 154 | |
| 155 | if( GetParent() ) { |
| 156 | CContainerUI* pParentContainer = static_cast<CContainerUI*>(GetParent()->GetInterface(_T("Container"))); |
| 157 | if( pParentContainer ) { |
| 158 | RECT rc = pParentContainer->GetPos(); |
| 159 | RECT rcInset = pParentContainer->GetInset(); |
| 160 | rc.left += rcInset.left; |
| 161 | rc.top += rcInset.top; |
| 162 | rc.right -= rcInset.right; |
| 163 | rc.bottom -= rcInset.bottom; |
| 164 | CScrollBarUI* pVerticalScrollBar = pParentContainer->GetVerticalScrollBar(); |
| 165 | if( pVerticalScrollBar && pVerticalScrollBar->IsVisible() ) rc.right -= pVerticalScrollBar->GetFixedWidth(); |
| 166 | CScrollBarUI* pHorizontalScrollBar = pParentContainer->GetHorizontalScrollBar(); |
| 167 | if( pHorizontalScrollBar && pHorizontalScrollBar->IsVisible() ) rc.bottom -= pHorizontalScrollBar->GetFixedHeight(); |
| 168 | |
| 169 | RECT invalidateRc = m_rcItem; |
| 170 | if( !::IntersectRect(&invalidateRc, &m_rcItem, &rc) ) |
| 171 | return; |
| 172 | |
| 173 | CControlUI* pParent = GetParent(); |
| 174 | RECT rcTemp; |
| 175 | RECT rcParent; |
| 176 | while( pParent = pParent->GetParent() ) |
| 177 | { |
| 178 | rcTemp = invalidateRc; |
| 179 | rcParent = pParent->GetPos(); |
| 180 | if( !::IntersectRect(&invalidateRc, &rcTemp, &rcParent) ) |
| 181 | return; |
| 182 | } |
| 183 | |
| 184 | if( m_pManager != NULL ) m_pManager->Invalidate(invalidateRc); |
| 185 | } |
| 186 | else { |
| 187 | CContainerUI::Invalidate(); |
| 188 | } |
| 189 | } |
| 190 | else { |
| 191 | CContainerUI::Invalidate(); |
| 192 | } |
| 193 | } |
| 194 | |
| 195 | //************************************ |
| 196 | // ��������: Select |
nothing calls this directly
no test coverage detected