📄 minimapview.cpp
字号:
// MiniMapView.cpp : implementation file
//
#include "stdafx.h"
#include "MapEdit.h"
#include "MainFrm.h"
#include "MapDoc.h"
#include "MapView.h"
#include "TileView.h"
#include "MiniMapView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CMiniMapView
IMPLEMENT_DYNCREATE(CMiniMapView, CView)
CMiniMapView::CMiniMapView()
{
}
CMiniMapView::~CMiniMapView()
{
}
BEGIN_MESSAGE_MAP(CMiniMapView, CView)
//{{AFX_MSG_MAP(CMiniMapView)
ON_WM_ERASEBKGND()
ON_WM_TIMER()
ON_WM_CREATE()
ON_WM_DESTROY()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CMiniMapView drawing
static COLORREF CornerColorTable[]={
0,RGB(145,90,7),RGB(0,255,0),RGB(169,169,169),RGB(60,60,60),RGB(120,120,120)
};
void CMiniMapView::OnDraw(CDC* pDC)
{
CMapDoc * pDoc = GetDocument();
CMainFrame * pFrame=(CMainFrame*)AfxGetApp()->GetMainWnd();
CTileView * pTileView = pFrame->GetTileView();
CClientDC dc(this);
CRect rc;
GetClientRect(rc);
ESurface cur_terrain;
cur_terrain.Create(rc.Width(),rc.Height(),SF_CLIP);
cur_terrain.Clear(0,0,0);
if(pTileView->TileType()==TT_TERRAIN)
{
if(pTileView->CurrentTerrainID().TileID!=INVALID_TERRAIN_ID)
{
cur_terrain.Blt(pDoc->m_Grp_terrain,
pDoc->TerrainIndex(pTileView->CurrentTerrainID()),
(rc.Width()-pDoc->m_Grp_terrain.GetWidth())/2,
(rc.Height()-pDoc->m_Grp_terrain.GetHeight())/2
);
}
}else if(pTileView->TileType()==TT_OBSTACLE)
{
static i;
EPG& epg = pDoc->m_epg_obstacle[
pDoc->ObstacleIndex(pTileView->CurrentObstacleID())];
++i%=epg.GetFrameCount();
cur_terrain.Blt(epg,i,
(rc.Width()-24)/2,
(rc.Height()-24)/2);
}
cur_terrain.Blt2DC(pDC->m_hDC,0,0);
}
/////////////////////////////////////////////////////////////////////////////
// CMiniMapView diagnostics
#ifdef _DEBUG
void CMiniMapView::AssertValid() const
{
CView::AssertValid();
}
void CMiniMapView::Dump(CDumpContext& dc) const
{
CView::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CMiniMapView message handlers
void CMiniMapView::OnInitialUpdate()
{
CView::OnInitialUpdate();
}
void CMiniMapView::OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint)
{
// TODO: Add your specialized code here and/or call the base class
if(lHint==UPDATE_ALLVIEW || lHint==UPDATE_MINIVIEW)
RedrawWindow();
}
BOOL CMiniMapView::OnEraseBkgnd(CDC* pDC)
{
return TRUE;
//return CView::OnEraseBkgnd(pDC);
}
void CMiniMapView::OnTimer(UINT nIDEvent)
{
CMapDoc * pDoc = GetDocument();
CMainFrame * pFrame=(CMainFrame*)AfxGetApp()->GetMainWnd();
CTileView * pTileView = pFrame->GetTileView();
if(nIDEvent==1){
RedrawWindow();
//pFrame->SetActiveView(pFrame->GetMapView());
pFrame->GetMapView()->RedrawWindow();
}
CView::OnTimer(nIDEvent);
}
int CMiniMapView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: Add your specialized creation code here
SetTimer(1,200,0);
return 0;
}
void CMiniMapView::OnDestroy()
{
CView::OnDestroy();
// TODO: Add your message handler code here
KillTimer(1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -