Index: src/ch/PropertyListCtrl.cpp =================================================================== diff -u -N -r547f865c69434c14c6f16e4b529d4198f6fe2040 -rb54c4c99501114987cd2260c774528c0a8ac71cf --- src/ch/PropertyListCtrl.cpp (.../PropertyListCtrl.cpp) (revision 547f865c69434c14c6f16e4b529d4198f6fe2040) +++ src/ch/PropertyListCtrl.cpp (.../PropertyListCtrl.cpp) (revision b54c4c99501114987cd2260c774528c0a8ac71cf) @@ -65,32 +65,35 @@ void CComboButton::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct ) { CDC* prDC = CDC::FromHandle(lpDrawItemStruct->hDC); - CRect ButtonRect = lpDrawItemStruct->rcItem; - CMemDC dc(*prDC, ButtonRect); + CRect buttonRect = lpDrawItemStruct->rcItem; + if(buttonRect.IsRectEmpty()) + return; + CMemDC dc(*prDC, buttonRect); + // Fill the Background CBrush* pOldBrush = (CBrush*)dc.GetDC().SelectObject( m_pBkBrush ); CPen* pOldPen = (CPen*)dc.GetDC().SelectObject(m_pBkPen); - dc.GetDC().Rectangle(ButtonRect); + dc.GetDC().Rectangle(buttonRect); // Draw the Correct Border if(lpDrawItemStruct->itemState & ODS_SELECTED) { - dc.GetDC().DrawEdge(ButtonRect, EDGE_SUNKEN, BF_RECT); - ButtonRect.left++; - ButtonRect.right++; - ButtonRect.bottom++; - ButtonRect.top++; + dc.GetDC().DrawEdge(buttonRect, EDGE_SUNKEN, BF_RECT); + buttonRect.left++; + buttonRect.right++; + buttonRect.bottom++; + buttonRect.top++; } else - dc.GetDC().DrawEdge(ButtonRect, EDGE_RAISED, BF_RECT); + dc.GetDC().DrawEdge(buttonRect, EDGE_RAISED, BF_RECT); // Draw the Triangle - ButtonRect.left += 3; - ButtonRect.right -= 4; - ButtonRect.top += 5; - ButtonRect.bottom -= 5; - DrawTriangle(&dc.GetDC(), ButtonRect); + buttonRect.left += 3; + buttonRect.right -= 4; + buttonRect.top += 5; + buttonRect.bottom -= 5; + DrawTriangle(&dc.GetDC(), buttonRect); // Return what was used dc.GetDC().SelectObject( pOldPen );