📄 wmazeview.cpp
字号:
a=(int)(((float)rand() / (float)RAND_MAX) * 2 );
b=(int)(((float)rand() / (float)RAND_MAX) * 2 ) ;
c=(int)(((float)rand() / (float)RAND_MAX) * 2 ) ;
d=(int)(((float)rand() / (float)RAND_MAX) * 2 ) ;
}
a==0?dc.SelectObject(&pen2):dc.SelectObject(&pen);
dc.MoveTo(HEAD+i*(LSIZE-1),HEAD+j*(LSIZE-1));
dc.LineTo(HEAD+i*(LSIZE-1)+LSIZE,HEAD+j*(LSIZE-1));
b==0?dc.SelectObject(&pen2):dc.SelectObject(&pen);
dc.MoveTo(HEAD+i*(LSIZE-1),HEAD+j*(LSIZE-1));
dc.LineTo(HEAD+i*(LSIZE-1),HEAD+j*(LSIZE-1)+LSIZE);
c==0?dc.SelectObject(&pen2):dc.SelectObject(&pen);
dc.MoveTo(HEAD+i*(LSIZE-1)+LSIZE-1,HEAD+j*(LSIZE-1));
dc.LineTo(HEAD+i*(LSIZE-1)+LSIZE-1,HEAD+j*(LSIZE-1)+LSIZE);
d==0?dc.SelectObject(&pen2):dc.SelectObject(&pen);
dc.MoveTo(HEAD+i*(LSIZE-1),HEAD+j*(LSIZE-1)+LSIZE-1);
dc.LineTo(HEAD+i*(LSIZE-1)+LSIZE,HEAD+j*(LSIZE-1)+LSIZE-1);
break;
default:
// setcolor(5);
dc.SelectObject(&pen);
dc.SelectStockObject(NULL_BRUSH);//选入空刷子(参数看msdn)
dc.Rectangle(HEAD+i*(LSIZE-1),HEAD+j*(LSIZE-1),HEAD+LSIZE+(LSIZE-1)*i,
HEAD+LSIZE+(LSIZE-1)*j);
break;
}
}
}
// setcolor(5);
dc.SelectObject(&pen);
dc.SelectStockObject(NULL_BRUSH);//选入空刷子(参数看msdn)
dc.Rectangle(HEAD,HEAD,HEAD+LSIZE+(LSIZE-1)*41,HEAD+LSIZE+(LSIZE-1)*41);
}
void CWMazeView::Creat_Maze4(CClientDC &dc){
CPen pen(PS_SOLID,1,RGB(128,0,128));
CPen pen2(PS_SOLID,1,RGB(0,0,0));
for(int i=0;i<42;i++){
for(int j=0;j<42;j++){
switch (Creat_Maze[i][j]){
case 0:
dc.SelectObject(&pen2);
dc.SelectStockObject(NULL_BRUSH);//选入空刷子(参数看msdn)
dc.Rectangle(HEAD+i*(LSIZE-1),HEAD+j*(LSIZE-1),HEAD+LSIZE+(LSIZE-1)*i,
HEAD+LSIZE+(LSIZE-1)*j);
break;
case 1:
dc.SelectObject(&pen);
dc.SelectStockObject(NULL_BRUSH);//选入空刷子(参数看msdn)
dc.Rectangle(HEAD+i*(LSIZE-1),HEAD+j*(LSIZE-1),HEAD+LSIZE+(LSIZE-1)*i,
HEAD+LSIZE+(LSIZE-1)*j);
break;
case 2:
dc.SelectObject(&pen2);
dc.SelectStockObject(NULL_BRUSH);//选入空刷子(参数看msdn)
dc.Rectangle(HEAD+i*(LSIZE-1),HEAD+j*(LSIZE-1),HEAD+LSIZE+(LSIZE-1)*i,
HEAD+LSIZE+(LSIZE-1)*j);
dc.SelectObject(&pen);
dc.MoveTo(HEAD+i*(LSIZE-1),HEAD+j*(LSIZE-1));
dc.LineTo(HEAD+i*(LSIZE-1),HEAD+j*(LSIZE-1)+LSIZE);
break;
case 3:
dc.SelectObject(&pen2);
dc.SelectStockObject(NULL_BRUSH);//选入空刷子(参数看msdn)
dc.Rectangle(HEAD+i*(LSIZE-1),HEAD+j*(LSIZE-1),HEAD+LSIZE+(LSIZE-1)*i,
HEAD+LSIZE+(LSIZE-1)*j);
dc.SelectObject(&pen);
dc.MoveTo(HEAD+i*(LSIZE-1),HEAD+j*(LSIZE-1));
dc.LineTo(HEAD+i*(LSIZE-1)+LSIZE,HEAD+j*(LSIZE-1));
break;
case 4:
dc.SelectObject(&pen2);
dc.SelectStockObject(NULL_BRUSH);//选入空刷子(参数看msdn)
dc.Rectangle(HEAD+i*(LSIZE-1),HEAD+j*(LSIZE-1),HEAD+LSIZE+(LSIZE-1)*i,
HEAD+LSIZE+(LSIZE-1)*j);
dc.SelectObject(&pen);
dc.MoveTo(HEAD+i*(LSIZE-1),HEAD+j*(LSIZE-1)+LSIZE-1);
dc.LineTo(HEAD+i*(LSIZE-1)+LSIZE,HEAD+j*(LSIZE-1)+LSIZE-1);
break;
case 5:
dc.SelectObject(&pen2);
dc.SelectStockObject(NULL_BRUSH);//选入空刷子(参数看msdn)
dc.Rectangle(HEAD+i*(LSIZE-1),HEAD+j*(LSIZE-1),HEAD+LSIZE+(LSIZE-1)*i,
HEAD+LSIZE+(LSIZE-1)*j);
dc.SelectObject(&pen);
dc.MoveTo(HEAD+i*(LSIZE-1)+LSIZE-1,HEAD+j*(LSIZE-1));
dc.LineTo(HEAD+i*(LSIZE-1)+LSIZE-1,HEAD+j*(LSIZE-1)+LSIZE);
break;
case 6:
dc.SelectObject(&pen2);
dc.SelectStockObject(NULL_BRUSH);//选入空刷子(参数看msdn)
dc.Rectangle(HEAD+i*(LSIZE-1),HEAD+j*(LSIZE-1),HEAD+LSIZE+(LSIZE-1)*i,
HEAD+LSIZE+(LSIZE-1)*j);
dc.SelectObject(&pen);
dc.MoveTo(HEAD+i*(LSIZE-1),HEAD+j*(LSIZE-1));
dc.LineTo(HEAD+i*(LSIZE-1),HEAD+j*(LSIZE-1)+LSIZE);
dc.MoveTo(HEAD+i*(LSIZE-1),HEAD+j*(LSIZE-1));
dc.LineTo(HEAD+i*(LSIZE-1)+LSIZE,HEAD+j*(LSIZE-1));
break;
case 7:
dc.SelectObject(&pen2);
dc.SelectStockObject(NULL_BRUSH);//选入空刷子(参数看msdn)
dc.Rectangle(HEAD+i*(LSIZE-1),HEAD+j*(LSIZE-1),HEAD+LSIZE+(LSIZE-1)*i,
HEAD+LSIZE+(LSIZE-1)*j);
dc.SelectObject(&pen);
dc.MoveTo(HEAD+i*(LSIZE-1),HEAD+j*(LSIZE-1));
dc.LineTo(HEAD+i*(LSIZE-1)+LSIZE,HEAD+j*(LSIZE-1));
dc.MoveTo(HEAD+i*(LSIZE-1)+LSIZE-1,HEAD+j*(LSIZE-1));
dc.LineTo(HEAD+i*(LSIZE-1)+LSIZE-1,HEAD+j*(LSIZE-1)+LSIZE);
break;
case 8:
dc.SelectObject(&pen2);
dc.SelectStockObject(NULL_BRUSH);//选入空刷子(参数看msdn)
dc.Rectangle(HEAD+i*(LSIZE-1),HEAD+j*(LSIZE-1),HEAD+LSIZE+(LSIZE-1)*i,
HEAD+LSIZE+(LSIZE-1)*j);
dc.SelectObject(&pen);
dc.MoveTo(HEAD+i*(LSIZE-1),HEAD+j*(LSIZE-1));
dc.LineTo(HEAD+i*(LSIZE-1),HEAD+j*(LSIZE-1)+LSIZE);
dc.MoveTo(HEAD+i*(LSIZE-1),HEAD+j*(LSIZE-1)+LSIZE-1);
dc.LineTo(HEAD+i*(LSIZE-1)+LSIZE,HEAD+j*(LSIZE-1)+LSIZE-1);
break;
/* case 9:
dc.SelectObject(&pen2);
dc.SelectStockObject(NULL_BRUSH);//选入空刷子(参数看msdn)
dc.Rectangle(HEAD+i*(LSIZE-1),HEAD+j*(LSIZE-1),HEAD+LSIZE+(LSIZE-1)*i,
HEAD+LSIZE+(LSIZE-1)*j);
dc.SelectObject(&pen);
dc.MoveTo(HEAD+i*(LSIZE-1),HEAD+j*(LSIZE-1)+LSIZE-1);
dc.LineTo(HEAD+i*(LSIZE-1)+LSIZE,HEAD+j*(LSIZE-1)+LSIZE-1);
dc.MoveTo(HEAD+i*(LSIZE-1)+LSIZE-1,HEAD+j*(LSIZE-1));
dc.LineTo(HEAD+i*(LSIZE-1)+LSIZE-1,HEAD+j*(LSIZE-1)+LSIZE);
break;
case 10:
dc.SelectObject(&pen2);
dc.SelectStockObject(NULL_BRUSH);//选入空刷子(参数看msdn)
dc.Rectangle(HEAD+i*(LSIZE-1),HEAD+j*(LSIZE-1),HEAD+LSIZE+(LSIZE-1)*i,
HEAD+LSIZE+(LSIZE-1)*j);
dc.SelectObject(&pen);
dc.MoveTo(HEAD+i*(LSIZE-1),HEAD+j*(LSIZE-1));
dc.LineTo(HEAD+i*(LSIZE-1),HEAD+j*(LSIZE-1)+LSIZE);
dc.MoveTo(HEAD+i*(LSIZE-1)+LSIZE-1,HEAD+j*(LSIZE-1));
dc.LineTo(HEAD+i*(LSIZE-1)+LSIZE-1,HEAD+j*(LSIZE-1)+LSIZE);
break;
case 11:
dc.SelectObject(&pen2);
dc.SelectStockObject(NULL_BRUSH);//选入空刷子(参数看msdn)
dc.Rectangle(HEAD+i*(LSIZE-1),HEAD+j*(LSIZE-1),HEAD+LSIZE+(LSIZE-1)*i,
HEAD+LSIZE+(LSIZE-1)*j);
dc.SelectObject(&pen);
dc.MoveTo(HEAD+i*(LSIZE-1),HEAD+j*(LSIZE-1));
dc.LineTo(HEAD+i*(LSIZE-1)+LSIZE,HEAD+j*(LSIZE-1));
dc.MoveTo(HEAD+i*(LSIZE-1),HEAD+j*(LSIZE-1)+LSIZE-1);
dc.LineTo(HEAD+i*(LSIZE-1)+LSIZE,HEAD+j*(LSIZE-1)+LSIZE-1);
break;
case 12:
dc.SelectObject(&pen);
dc.SelectStockObject(NULL_BRUSH);//选入空刷子(参数看msdn)
dc.Rectangle(HEAD+i*(LSIZE-1),HEAD+j*(LSIZE-1),HEAD+LSIZE+(LSIZE-1)*i,
HEAD+LSIZE+(LSIZE-1)*j);
dc.SelectObject(&pen2);
dc.MoveTo(HEAD+i*(LSIZE-1),HEAD+j*(LSIZE-1)+LSIZE-1);
dc.LineTo(HEAD+i*(LSIZE-1)+LSIZE,HEAD+j*(LSIZE-1)+LSIZE-1);
break;
case 13:
dc.SelectObject(&pen);
dc.SelectStockObject(NULL_BRUSH);//选入空刷子(参数看msdn)
dc.Rectangle(HEAD+i*(LSIZE-1),HEAD+j*(LSIZE-1),HEAD+LSIZE+(LSIZE-1)*i,
HEAD+LSIZE+(LSIZE-1)*j);
dc.SelectObject(&pen2);
dc.MoveTo(HEAD+i*(LSIZE-1),HEAD+j*(LSIZE-1));
dc.LineTo(HEAD+i*(LSIZE-1)+LSIZE,HEAD+j*(LSIZE-1));
break;
case 14:
dc.SelectObject(&pen);
dc.SelectStockObject(NULL_BRUSH);//选入空刷子(参数看msdn)
dc.Rectangle(HEAD+i*(LSIZE-1),HEAD+j*(LSIZE-1),HEAD+LSIZE+(LSIZE-1)*i,
HEAD+LSIZE+(LSIZE-1)*j);
dc.SelectObject(&pen2);
dc.MoveTo(HEAD+i*(LSIZE-1)+LSIZE-1,HEAD+j*(LSIZE-1));
dc.LineTo(HEAD+i*(LSIZE-1)+LSIZE-1,HEAD+j*(LSIZE-1)+LSIZE);
break;
case 15:
dc.SelectObject(&pen);
dc.SelectStockObject(NULL_BRUSH);//选入空刷子(参数看msdn)
dc.Rectangle(HEAD+i*(LSIZE-1),HEAD+j*(LSIZE-1),HEAD+LSIZE+(LSIZE-1)*i,
HEAD+LSIZE+(LSIZE-1)*j);
dc.SelectObject(&pen2);
dc.MoveTo(HEAD+i*(LSIZE-1),HEAD+j*(LSIZE-1));
dc.LineTo(HEAD+i*(LSIZE-1),HEAD+j*(LSIZE-1)+LSIZE);
break;
*/ default:
break;
}
}
}
dc.SelectObject(&pen);
dc.SelectStockObject(NULL_BRUSH);//选入空刷子(参数看msdn)
dc.Rectangle(HEAD,HEAD,HEAD+LSIZE+(LSIZE-1)*41,HEAD+LSIZE+(LSIZE-1)*41);
dc.SelectObject(&pen2);
dc.MoveTo(HEAD+41*(LSIZE-1)/2+7,HEAD);
dc.LineTo(HEAD+41*(LSIZE-1)/2+LSIZE+7,HEAD);
dc.SelectObject(&pen);
dc.MoveTo(HEAD+41*(LSIZE-1)/2+7,HEAD);
dc.LineTo(HEAD+41*(LSIZE-1)/2+7,HEAD-LSIZE);
dc.MoveTo(HEAD+41*(LSIZE-1)/2+LSIZE+6,HEAD);
dc.LineTo(HEAD+41*(LSIZE-1)/2+LSIZE+6,HEAD-LSIZE);
}
void CWMazeView::OnDraw(CDC* pDC)
{
CWMazeDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// int Top=10;
// int Bottom=10;
CClientDC dc(this);
dc.FillSolidRect(0,0,820,800,RGB(0,0,0));
Creat_Maze4(dc);
// dc.Rectangle(HEAD+LSIZE*Bottom,HEAD+LSIZE*39,HEAD+LSIZE+LSIZE*Bottom,HEAD+LSIZE*40);
// dc.Rectangle(HEAD+LSIZE*Top,HEAD,HEAD+LSIZE+LSIZE*Top,HEAD+LSIZE);
// for(int i=0;i<10;i++){
// dc.Rectangle(CRect(INIT_X+i+20,INIT_Y,INIT_X+SINGLE,INIT_Y+SINGLE));//画矩形
// }
// CPen pen(PS_SOLID,1,RGB(0,255,0));//构造画笔对象
// dc.SelectObject(&pen);//将画笔选入DC
// dc.MoveTo(100,100);
// dc.LineTo(500,500);
// TODO: add draw code for native data here
}
/////////////////////////////////////////////////////////////////////////////
// CWMazeView printing
BOOL CWMazeView::OnPreparePrinting(CPrintInfo* pInfo)
{
// default preparation
return DoPreparePrinting(pInfo);
}
void CWMazeView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add extra initialization before printing
}
void CWMazeView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add cleanup after printing
}
/////////////////////////////////////////////////////////////////////////////
// CWMazeView diagnostics
#ifdef _DEBUG
void CWMazeView::AssertValid() const
{
CView::AssertValid();
}
void CWMazeView::Dump(CDumpContext& dc) const
{
CView::Dump(dc);
}
CWMazeDoc* CWMazeView::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CWMazeDoc)));
return (CWMazeDoc*)m_pDocument;
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CWMazeView message handlers
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -