CDC *pDC=new CDC; --> CDC *pDC = GetDC();//最后在释放
CMy1Doc*pDoc=GetDocument(); //不需要
ASSERT_VALID(pDoc); //不需要
MemDC.CreateCompatibleDC(GetDC());//<-
CBitmap *pOldBit=MemDC.SelectObject(&MemBitmap);//选了以后,再选回来
MemDC.SelectObject( pOldBit );
MemDC.CreateCompatibleDC(NULL);这个地方要用你要绘图的设备的DC,这里是VIEW吧。
MemBitmap.CreateCompatibleBitmap(pDC,400,400);这里的DC用应该用MemDC。
还有前面初始化那些画刷既然每个画刷都要写代码干吗还非要搞一个循环和switch结构呢,你觉得这样是可以提高程序的效率还是程序会有更好的可读性呢。