void CA99View::doPushBmp(CPoint point)
{
CBitmap m_bmp; 
CBitmap *pOldBitmap; 
CBrush *pOldBrush; 
CPen *pOldPen;  CDC *pDC = GetDC();  
if(pDC == NULL) 
return;  CDC dcMem; 
if (!dcMem.CreateCompatibleDC(pDC))   
return;  CRect rect; //Get the rectangle of stone; 
rect.left = point.x - 25/1; 
rect.right = point.x + 25/1; 
rect.top = point.y - 25/1; 
rect.bottom = point.y + 25/1;  m_bmp.LoadBitmap(IDB_MYBMP);
CBrush br(RGB(0, 0, 0));  
CPen pen(PS_NULL,1,RGB(0, 0, 0));  pOldBitmap = dcMem.SelectObject(&m_bmp); 
pOldPen=pDC->SelectObject(&pen); 
pOldBrush = pDC->SelectObject(&br); pDC->Ellipse(&rect);  

BITMAP bm; 
m_bmp.GetBitmap(&bm); pDC->StretchBlt(rect.left,rect.top,rect.Width(),rect.Height(), 
&dcMem,0,0,bm.bmWidth,bm.bmHeight,SRCPAINT);  dcMem.SelectObject(pOldBitmap); //select old bitmap 
pDC->SelectObject(pOldPen);//select old pen 
pDC->SelectObject(pOldBrush);//select old brush  ReleaseDC(pDC); 
}这段代码,是LBUTTONDOWN的响应代码
效果是画出圆形图片我的理解是:
白色,颜色值的各位,都是1
黑色,颜色值的各位,都是0
这段代码调用StretchBlt时,使用SRCPAINT参数,执行OR操作
那么如果我在白底的地方点击,
   圆图部分,因为已经画出黑色圆,因此和0进行OR操作,保留图片的样子,可以理解
   rect中除了圆图部分的其他部分,因此和白底(即1)进行OR操作,结果肯定是1,也就是白色,可以理解
   
但是,如果我在已经画出的圆形图片上面点击(非白色)
   rect中除了圆图部分的其他部分,和已经画出的圆形图片进行OR操作,我觉得结果应该是背景图片和源图片的混合物,
   但我看到的结果,是显示背景图片,我有点不明白