Index: src/ch/PropertyListCtrl.cpp =================================================================== diff -u -N -r9ddf8fdd5f641491dd30c49eb90f8f740314b6af -rb54c4c99501114987cd2260c774528c0a8ac71cf --- src/ch/PropertyListCtrl.cpp (.../PropertyListCtrl.cpp) (revision 9ddf8fdd5f641491dd30c49eb90f8f740314b6af) +++ src/ch/PropertyListCtrl.cpp (.../PropertyListCtrl.cpp) (revision b54c4c99501114987cd2260c774528c0a8ac71cf) @@ -20,7 +20,6 @@ #include "ch.h" #include "PropertyListCtrl.h" #include "dialogs.h" -#include "memdc.h" #ifdef _DEBUG #define new DEBUG_NEW @@ -66,37 +65,39 @@ void CComboButton::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct ) { CDC* prDC = CDC::FromHandle(lpDrawItemStruct->hDC); - CRect ButtonRect = lpDrawItemStruct->rcItem; - CMemDC dc(prDC, ButtonRect); - CMemDC *pDC=&dc; + CRect buttonRect = lpDrawItemStruct->rcItem; + if(buttonRect.IsRectEmpty()) + return; + CMemDC dc(*prDC, buttonRect); + // Fill the Background - CBrush* pOldBrush = (CBrush*)pDC->SelectObject( m_pBkBrush ); - CPen* pOldPen = (CPen*)pDC->SelectObject(m_pBkPen); - pDC->Rectangle(ButtonRect); + CBrush* pOldBrush = (CBrush*)dc.GetDC().SelectObject( m_pBkBrush ); + CPen* pOldPen = (CPen*)dc.GetDC().SelectObject(m_pBkPen); + dc.GetDC().Rectangle(buttonRect); // Draw the Correct Border if(lpDrawItemStruct->itemState & ODS_SELECTED) { - pDC->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 - pDC->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(pDC, ButtonRect); + buttonRect.left += 3; + buttonRect.right -= 4; + buttonRect.top += 5; + buttonRect.bottom -= 5; + DrawTriangle(&dc.GetDC(), buttonRect); // Return what was used - pDC->SelectObject( pOldPen ); - pDC->SelectObject( pOldBrush ); + dc.GetDC().SelectObject( pOldPen ); + dc.GetDC().SelectObject( pOldBrush ); } void CComboButton::DrawTriangle(CDC* pDC, CRect Rect)