MFC中绘图的有关问题,大神留步

MFC中绘图的问题,大神留步
刚刚接触MFC,还有很多东西不会用,方法也不懂,请大神帮忙

我在单文档中的OnDraw() 函数中画了一些表格
然后在鼠标移动消息中添加了画直线、举行、圆、橡皮擦等功能
使用橡皮擦功能,不但能擦除自己画的线,也跟同时会把表格给擦除
请问怎样让它不会擦除掉表格呢?
这个是显示的结果
MFC中绘图的有关问题,大神留步

下面这个是OnDraw()函数的代码,还用了双缓冲显示

void CBrailleView::OnDraw(CDC* pDC)
{
CBrailleDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;

// TODO: 在此处为本机数据添加绘制代码

CDC *memDC = new CDC;
CBitmap bmp;
memDC->CreateCompatibleDC(pDC);
int nWidth =w;
int nHeigth = h;
bmp.CreateCompatibleBitmap(pDC,nWidth,nHeigth);
CBitmap* pOldBit = memDC->SelectObject(&bmp);
memDC->FillSolidRect(0,0,nWidth,nHeigth,RGB(255,255,255));

//背景格子颜色 
pen.DeleteObject();
pen.CreatePen(PS_SOLID,1,RGB(200,200,200));
memDC->SelectObject(&pen);

//横线
for(int i=0;i<h;i+=8)
{
memDC->MoveTo(0,8+i);
memDC->LineTo(w,8+i);
}
//竖线
for(int j=0;j<w;j+=20)
{
memDC->MoveTo(20+j,0);
memDC->LineTo(20+j,h);
}
for(int j=0;j<w;j+=20)
{
memDC->MoveTo(8+j,0);
memDC->LineTo(8+j,h);
}
for(int j=0;j<w;j+=20)
{
memDC->MoveTo(16+j,0);
memDC->LineTo(16+j,h);
}
pen.DeleteObject();

pDC->BitBlt(0,0,nWidth,nHeigth,memDC,0,0,SRCCOPY);
memDC->SelectObject(pOldBit);
bmp.DeleteObject();
memDC->DeleteDC();

}

这个是鼠标移动消息的处理函数,对应图中的各个功能,输入文字还不会所以空着没写 

void CBrailleView::OnMouseMove(UINT nFlags,CPoint point)
{
if(m_Press == 1)
{
CDC *pDC = GetDC();
pDC->SelectObject(&pen);
switch(m_type)
{
case 1:
{
pDC->MoveTo(m_ptBegin);
pDC->LineTo(point);
m_ptBegin = point;
}
break;
case 2:
{
pDC->SetROP2(R2_NOT);
pDC->MoveTo(m_ptBegin);
pDC->LineTo(m_ptCurrent);
pDC->MoveTo(m_ptBegin);
pDC->LineTo(point);
m_ptCurrent = point;
}
break;
case 3:
{
pDC->SetROP2( R2_NOT );
CBrush *oldbrush = pDC->SelectObject( 
CBrush::FromHandle(
(HBRUSH)pDC->SelectStockObject(NULL_BRUSH)));
pDC->Rectangle(m_ptBegin.x, m_ptBegin.y,
m_ptCurrent.x, m_ptCurrent.y );
pDC->Rectangle(m_ptBegin.x, m_ptBegin.y,
point.x, point.y );