16,472
社区成员
发帖
与我相关
我的任务
分享
void CMy3_1View::OnLButtonUp(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CDC *pDC=GetDC();
CDC Dc;
if(Dc.CreateCompatibleDC(pDC)==FALSE)
AfxMessageBox("Can't create DC");
//是否在棋盘内
if(point.x>30&&point.x<410&&point.y>30&&point.y<410)
{
int px=(point.x-30)/20;
int py=(point.y-30)/20;
//是否已经有棋子
if(colorwhite&&wzq[px][py]==0)
{
Dc.SelectObject(m_bmwhite);
pDC->BitBlt(px*20+32,py*20+32,160,160,&Dc,0,0,SRCCOPY);
//表示存在白棋
wzq[px][py]=1;
//检查是否结束
over(point);
//换黑棋下
colorwhite=false;
}
else if(wzq[px][py]==0)
{
Dc.SelectObject(m_bmblack);
pDC->BitBlt(px*20+32,py*20+32,160,160,&Dc,0,0,SRCCOPY);
wzq[px][py]=-1;
over(point);
colorwhite=true;
}
}
CView::OnLButtonUp(nFlags, point);
}
CClientDC dc(this);
if(point.x>=30&&point.x<=410&&point.y<410&&point.y>30)
{
int px=(point.x-30)/20;
int py=(point.y-30)/20;
//是否有棋子
if((colorwhite==1)&&wzq[px][py]==0)
{
dc.SelectObject(m_bmwhite);
dc.BitBlt(px*20+32,py*20+32,160,160,&dc,0,0,SRCCOPY);
//表示白棋已经存在
wzq[px][py]=1;
over(point);
colorwhite=0;
}
if(wzq[px][py]==0)
{
dc.SelectObject(m_bmblack);
dc.BitBlt(px*20+32,py*20+32,160,160,&dc,0,0,SRCCOPY);
wzq[px][py]=-1;
over(point);
colorwhite=1;
}
}
但我写的运行之后棋子下不了 而且棋盘还清空了一部分 这是什么原因呢?