cppmdi2dview.cpp

来自「本代码为使用vc平台开发stk软件x插件的一个范例。」· C++ 代码 · 共 159 行

CPP
159
字号
/******************************************************************************/
/*****       Copyright 2004-2004, Analytical Graphics, Incorporated.      *****/
/******************************************************************************/
// CPPMDI2DView.cpp : implementation file
//

#include "stdafx.h"
#include "CPPMDI.h"
#include "CPPMDI2DView.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

extern CCPPMDIApp theApp;

#define IDC_AX2D 1002

/////////////////////////////////////////////////////////////////////////////
// CCPPMDI2DView

IMPLEMENT_DYNCREATE(CCPPMDI2DView, CView)

CCPPMDI2DView::CCPPMDI2DView()
{
}

CCPPMDI2DView::~CCPPMDI2DView()
{
}


BEGIN_MESSAGE_MAP(CCPPMDI2DView, CView)
	//{{AFX_MSG_MAP(CCPPMDI2DView)
	ON_WM_SIZE()
	ON_WM_CREATE()
	ON_COMMAND(ID_ZOOM_IN, OnZoomIn)
	ON_COMMAND(ID_ZOOM_OUT, OnZoomOut)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CCPPMDI2DView drawing

void CCPPMDI2DView::OnDraw(CDC* pDC)
{
	CDocument* pDoc = GetDocument();
	// TODO: add draw code here
}

/////////////////////////////////////////////////////////////////////////////
// CCPPMDI2DView diagnostics

#ifdef _DEBUG
void CCPPMDI2DView::AssertValid() const
{
	CView::AssertValid();
}

void CCPPMDI2DView::Dump(CDumpContext& dc) const
{
	CView::Dump(dc);
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CCPPMDI2DView message handlers

int CCPPMDI2DView::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CView::OnCreate(lpCreateStruct) == -1)
		return -1;

	RECT rectClient = { 0, 0, 50, 50 };	// 2D Control will get resized in CCPPMDI2DView::OnSize()

	if (!m_Ax2D.Create(NULL, WS_VISIBLE, rectClient, this, IDC_AX2D))
	{
		DestroyWindow();
		return -1;
	}

	return 0;
}

void CCPPMDI2DView::OnSize(UINT nType, int cx, int cy) 
{
	CView::OnSize(nType, cx, cy);

	RECT rectClient;
	GetClientRect(&rectClient);

	m_Ax2D.MoveWindow(&rectClient);		// Make 2D Control take up entire view
}


/////////////////////////////////////////////////////////////////////////////
// m_Ax2D message handlers


BEGIN_EVENTSINK_MAP(CCPPMDI2DView, CView)
    //{{AFX_EVENTSINK_MAP(CCPPMDI2DView)
	ON_EVENT(CCPPMDI2DView, IDC_AX2D, -600 /* Click */, OnAx2DClick, VTS_NONE)
	ON_EVENT(CCPPMDI2DView, IDC_AX2D, -606 /* MouseMove */, OnAx2DMouseMove, VTS_I2 VTS_I2 VTS_I4 VTS_I4)
	ON_EVENT(CCPPMDI2DView, IDC_AX2D, -602 /* KeyDown */, OnAx2DKeyDown, VTS_PI2 VTS_I2)
	ON_EVENT(CCPPMDI2DView, IDC_AX2D, -603 /* KeyPress */, OnAx2DKeyPress, VTS_PI2)
	ON_EVENT(CCPPMDI2DView, IDC_AX2D, -604 /* KeyUp */, OnAx2DKeyUp, VTS_PI2 VTS_I2)
	ON_EVENT(CCPPMDI2DView, IDC_AX2D, -601 /* DblClick */, OnAx2DDblClick, VTS_NONE)
	ON_EVENT(CCPPMDI2DView, IDC_AX2D, -605 /* MouseDown */, OnAx2DMouseDown, VTS_I2 VTS_I2 VTS_I4 VTS_I4)
	ON_EVENT(CCPPMDI2DView, IDC_AX2D, -607 /* MouseUp */, OnAx2DMouseUp, VTS_I2 VTS_I2 VTS_I4 VTS_I4)
	//}}AFX_EVENTSINK_MAP
END_EVENTSINK_MAP()


void CCPPMDI2DView::OnAx2DClick()
{
}

void CCPPMDI2DView::OnAx2DMouseMove(short Button, short Shift, long x, long y) 
{
}

void CCPPMDI2DView::OnAx2DKeyDown(short FAR* KeyCode, short Shift) 
{
}

void CCPPMDI2DView::OnAx2DKeyPress(short FAR* KeyAscii) 
{
}

void CCPPMDI2DView::OnAx2DKeyUp(short FAR* KeyCode, short Shift) 
{
}

// When a user double clicks, update the message viewer window with
// the selected object, latitude, etc.  The mouse coords are set
// right before this is called in OnAx2DMouseDown()
void CCPPMDI2DView::OnAx2DDblClick() 
{
	theApp.m_MsgViewDlg.AddMessage(m_Ax2D.PickInfo(m_x, m_y));
}

void CCPPMDI2DView::OnAx2DMouseDown(short Button, short Shift, long x, long y) 
{
	m_x = x;
	m_y = y;
}

void CCPPMDI2DView::OnAx2DMouseUp(short Button, short Shift, long x, long y) 
{
}

void CCPPMDI2DView::OnZoomIn()	{ m_Ax2D.ZoomIn(); }
void CCPPMDI2DView::OnZoomOut() { m_Ax2D.ZoomOut(); }
/******************************************************************************/
/*****       Copyright 2004-2004, Analytical Graphics, Incorporated.      *****/
/******************************************************************************/

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?