⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 c3qview.cpp

📁 一个使用VRmap控件编成的VC实例
💻 CPP
字号:
// C3QView.cpp : implementation of the CC3QView class
//

#include "stdafx.h"
#include "C3Q.h"

#include "C3QDoc.h"
#include "C3QView.h"

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

#include "comutil.h"
#include "atlbase.h"
#import "VRMAP2.TLB" raw_interfaces_only, raw_native_types, no_namespace, named_guids 

/////////////////////////////////////////////////////////////////////////////
// CC3QView

IMPLEMENT_DYNCREATE(CC3QView, CView)

BEGIN_MESSAGE_MAP(CC3QView, CView)
	//{{AFX_MSG_MAP(CC3QView)
	ON_WM_CREATE()
	ON_COMMAND(ID_VIEW_MOVE, OnViewMove)
	ON_COMMAND(ID_VIEW_PAN, OnViewPan)
	ON_COMMAND(ID_VIEW_ROTAT, OnViewRotat)
	ON_COMMAND(ID_VIEW_CENTER, OnViewCenter)
	ON_COMMAND(ID_VIEW_SELECT, OnViewSelect)
	ON_COMMAND(ID_VIEW_ZOOM, OnViewZoom)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CC3QView construction/destruction

CC3QView::CC3QView()
{
	// TODO: add construction code here

}

CC3QView::~CC3QView()
{
}

BOOL CC3QView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	return CView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CC3QView drawing

void CC3QView::OnDraw(CDC* pDC)
{
	CC3QDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	// TODO: add draw code for native data here
}

/////////////////////////////////////////////////////////////////////////////
// CC3QView diagnostics

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

void CC3QView::Dump(CDumpContext& dc) const
{
	CView::Dump(dc);
}

CC3QDoc* CC3QView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CC3QDoc)));
	return (CC3QDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CC3QView message handlers

int CC3QView::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CView::OnCreate(lpCreateStruct) == -1)
		return -1;
	
	// TODO: Add your specialized creation code here
	CRect Rect;

//	SystemParametersInfo( SPI_GETWORKAREA,0,&Rect,0);
//	Rect.bottom += GetSystemMetrics(SM_CYBORDER);
	Rect.left = 0;
	Rect.bottom = 800;
	Rect.top = 0;
	Rect.right = 1024;
	GetDocument()->m_vrcontrol.Create(NULL,0,Rect,this,0);
	GetDocument()->m_vrcontrol.SetDriverType(0);
	
	m_VrWin.Create(NULL,WS_VISIBLE,Rect, this, 0);

	IUnknown *pUnk;
	IDispatch *pDis;
//	CComPtr<IDispathch> pDis;

	pUnk = GetDocument()->m_vrcontrol.GetControlUnknown();
	pUnk->QueryInterface(IID_IDispatch,(void**)&pDis);

	m_VrWin.SetVRMapX2Control(pDis);
	
//调入地图操作插件,所以注意需要有这些插件存在
	GetDocument()->m_vrcontrol.LoadPlugin("VRMapBrowser.Browser.1");   //实时浏览
	GetDocument()->m_vrcontrol.LoadPlugin("VRBPlugin.VRBCortrol.1");   //二维界面控制插件
	GetDocument()->m_vrcontrol.LoadPlugin("VRBWndEditPlugin.VRBWndEdit.1"); 
	GetDocument()->m_vrcontrol.LoadPlugin("VMDemCreate.VMDemCreater.1"); 
	GetDocument()->m_vrcontrol.LoadPlugin("VMCreateVecObject.CreateVecObject.1"); 
	GetDocument()->m_vrcontrol.LoadPlugin("VMStdEditor.VRMapStdEditor"); 
	GetDocument()->m_vrcontrol.LoadPlugin("VMStdViewer.VRMapStdViewer"); 
	GetDocument()->m_vrcontrol.LoadPlugin("VMStdFilter.MaxImporter"); 
	GetDocument()->m_vrcontrol.LoadPlugin("VMVecImporter.SHPImporter"); 
	pDis->Release();
	return 0;
}

void CC3QView::OnViewMove() 
{
	// TODO: Add your command handler code here
	
}

void CC3QView::OnViewPan() 
{
	// TODO: Add your command handler code here
	CComVariant str = "移动场景" ; 
    GetDocument()->m_vrcontrol.OnCommand (str );

}

void CC3QView::OnViewRotat() 
{
	// TODO: Add your command handler code here
	CComVariant str = "旋转场景" ; 
    GetDocument()->m_vrcontrol.OnCommand (str );
}

void CC3QView::OnViewCenter() 
{
	// TODO: Add your command handler code here
	CComVariant str = "物体居中" ; 
    GetDocument()->m_vrcontrol.OnCommand (str );
}

void CC3QView::OnViewSelect() 
{
	// TODO: Add your command handler code here
	CComVariant str = "选择(&S)" ; 
    GetDocument()->m_vrcontrol.OnCommand (str );
}

void CC3QView::OnViewZoom() 
{
	// TODO: Add your command handler code here
	CComVariant str = "放大" ; 
    GetDocument()->m_vrcontrol.OnCommand (str );
}

/*
	VRMapX2Control1.ConnectCommand "选择(&S)", tSelectNode
    VRMapX2Control1.ConnectCommand "放大", tZoom
    VRMapX2Control1.ConnectCommand "移动场景", tPan
    VRMapX2Control1.ConnectCommand "旋转场景", tRotate
    VRMapX2Control1.ConnectCommand "选择子结点", tChildNode
    VRMapX2Control1.ConnectCommand "物体居中", tCenter
*/


⌨️ 快捷键说明

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