16,472
社区成员
发帖
与我相关
我的任务
分享
CGobangView::CGobangView()
{
// TODO: add construction code here
m_hcurBlack = AfxGetApp ()->LoadCursor (IDC_CURSOR2);
m_hcurWhite = AfxGetApp ()->LoadCursor (IDC_CURSOR1);
m_bmpWhite.LoadBitmap (IDB_WHITE);
m_bmpBlack.LoadBitmap (IDB_BLACK);
//清理棋盘 数组值为0表示没有棋子
for (int i=0; i<15; i++)
for (int j=0; j<15; j++)
wzq[i][j] = 0;
//白棋先下
m_bWhite = TRUE;
}
void CGobangView::OnDraw(CDC* pDC)
{
CGobangDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
// Draw background
CBrush brush;
brush.CreateSolidBrush (RGB(0, 255, 255));
CRect rect;
GetClientRect (&rect);
pDC->FillRect (&rect, &brush);
/* //画棋盘
CPen pen;
CPen *pOldPen;
pen.CreatePen (PS_SOLID, 1, RGB (0, 0, 0));
pOldPen = pDC->SelectObject (&pen);
*/
for (int i=0; i<15; i++)
{
// 行
pDC->MoveTo (50, 50 + i*20);
pDC->LineTo (330, 50 + i*20);
// 列
pDC->MoveTo (50 + i*20, 50);
pDC->LineTo (50 + i*20, 330);
}
// 重画时显示存在的棋子 数组值为1表示白棋 -1表示黑棋
CDC dc;
if (dc.CreateCompatibleDC (pDC) == FALSE)
MessageBox ("Can't create DC");
for (int n=0; n<15; n++)
for (int m=0; m<15; m++)
if (wzq[n][m] == 1)
{
dc.SelectObject (m_bmpWhite);
pDC->BitBlt (n*20+40, m*20+40, 160, 160, &dc, 0, 0, SRCCOPY);
}
else if (wzq[n][m] == -1)
{
dc.SelectObject (m_bmpBlack);
pDC->BitBlt (n*20+40, m*20+40, 160, 160, &dc, 0, 0, SRCCOPY);
}
}