按钮自绘的有关问题

按钮自绘的问题
程序运行后正常,但当我单击按钮时就会报错
提示   什么内存不可读
请问怎么回事啊?
DrawItem函数如下

void   CCircleButton::DrawItem(LPDRAWITEMSTRUCT   lpDrawItemStruct)  
{
//   TODO:   Add   your   code   to   draw   the   specified   item
CDC   btnDC;
btnDC.Attach(   lpDrawItemStruct-> hDC   );

UINT   state   =   lpDrawItemStruct-> itemState;
CBitmap   btnBmp;
if(   !btnBmp.LoadBitmap(   m_bmpID   )   )
{
return   ;
}
CSize   bmpSize;
// bmpSize   =   btnBmp.GetBitmapDimension(   );
BITMAPINFO   bmpInfo;
btnBmp.GetObject(   sizeof(   bmpInfo   )   ,   (   void*   )&bmpInfo   );
bmpSize.cy   =   bmpInfo.bmiHeader.biHeight;
bmpSize.cx   =   bmpInfo.bmiHeader.biWidth;

CRect   btnRect;
GetClientRect(   btnRect   );
MapWindowPoints(   GetParent(   )   ,   btnRect   );
MoveWindow(   btnRect.left   ,   btnRect.top   ,
                bmpSize.cx   ,   bmpSize.cy   );

hRgn   =   CreateEllipticRgn(   0   ,   0   ,   bmpSize.cx   ,   bmpSize.cy   );
SetWindowRgn(   hRgn   ,TRUE   );

btnDC.SetBkMode(   TRANSPARENT   );

CBrush*   pOldBrush   ,   bmpBrush;
CPen*   pOldPen;
bmpBrush.CreatePatternBrush(   &btnBmp   );
pOldBrush   =   btnDC.SelectObject(   &bmpBrush   );

if((state&ODS_SELECTED)   ||   state&ODS_FOCUS)
{
              btnDC.Ellipse(   0   ,   0   ,   bmpSize.cx   ,   bmpSize.cy   );
}
else
{
CPen   pen(   PS_NULL   ,   1   ,RGB(0,0,0)   );
pOldPen   =   btnDC.SelectObject(   &pen   );
btnDC.Ellipse(   -1   ,   -1   ,   bmpSize.cx   +   2   ,   bmpSize.cy   +   2   );
}

CString   txtStr;
GetWindowText(   txtStr   );
btnDC.SetTextColor(   m_txtColor   );
btnDC.DrawText(   txtStr   ,   CRect(   0   ,   0   ,   bmpSize.cx   ,   bmpSize.cy   )   ,   DT_CENTER   |   DT_VCENTER   |   DT_SINGLELINE   );

btnDC.SelectObject(   pOldPen   );
btnDC.SelectObject(   pOldBrush   );


------解决方案--------------------
有些东西用完之后要及时Delete掉,否则就会出现楼主的情况
------解决方案--------------------
设个断点,看哪里出错`
------解决方案--------------------
SetWindowRgn( hRgn ,TRUE );这是设置按钮区域的操作,通常放在PreSubClassWindow中操作,而且得到位图的信息也不需这么麻烦定义一个BITMAP bminfo;而后btnBmp.GetBitmap(&bminfo)就可以了吧。