📄 c3qview.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 + -