📄 testview.cpp
字号:
// TestView.cpp : implementation of the CTestView class
//
#include "stdafx.h"
#include "Test.h"
#include "TestDoc.h"
#include "TestView.h"
#include "mapinfow.h" // ADDED FOR INTEGRATED MAPPING SUPPORT
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CTestView
IMPLEMENT_DYNCREATE(CTestView, CView)
BEGIN_MESSAGE_MAP(CTestView, CView)
//{{AFX_MSG_MAP(CTestView)
ON_WM_CREATE()
ON_WM_DESTROY()
ON_WM_SIZE()
ON_COMMAND(ID_MAP_LAYERCONTROL, OnMapLayercontrol)
ON_UPDATE_COMMAND_UI(ID_MAP_LAYERCONTROL, OnUpdateMapLayercontrol)
ON_COMMAND(ID_TOOLS_SELECTOR, OnToolsSelector)
ON_UPDATE_COMMAND_UI(ID_TOOLS_SELECTOR, OnUpdateToolsSelector)
ON_COMMAND(ID_TOOLS_GRABBER, OnToolsGrabber)
ON_UPDATE_COMMAND_UI(ID_TOOLS_GRABBER, OnUpdateToolsGrabber)
ON_COMMAND(ID_TOOLS_ZOOMIN, OnToolsZoomin)
ON_UPDATE_COMMAND_UI(ID_TOOLS_ZOOMIN, OnUpdateToolsZoomin)
ON_COMMAND(ID_TOOLS_ZOOMOUT, OnToolsZoomout)
ON_UPDATE_COMMAND_UI(ID_TOOLS_ZOOMOUT, OnUpdateToolsZoomout)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CTestView construction/destruction
CTestView::CTestView()
{
// TODO: add construction code here
// ADDED FOR INTEGRATED MAPPING SUPPORT
m_windowid = 0;
m_windowhwnd = 0;
m_eMouseMode=M_TOOLS_RECENTER;
// END OF ADDED FOR INTEGRATED MAPPING SUPPORT
}
CTestView::~CTestView()
{
}
BOOL CTestView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
return CView::PreCreateWindow(cs);
}
/////////////////////////////////////////////////////////////////////////////
// CTestView drawing
void CTestView::OnDraw(CDC* pDC)
{
CTestDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
}
/////////////////////////////////////////////////////////////////////////////
// CTestView diagnostics
#ifdef _DEBUG
void CTestView::AssertValid() const
{
CView::AssertValid();
}
void CTestView::Dump(CDumpContext& dc) const
{
CView::Dump(dc);
}
CTestDoc* CTestView::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CTestDoc)));
return (CTestDoc*)m_pDocument;
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CTestView message handlers
int CTestView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: Add your specialized creation code here
// ADDED FOR INTEGRATED MAPPING SUPPORT
//must have ClipChildren style for integratable maps to work
SetWindowLong(m_hWnd, GWL_STYLE, GetWindowLong(m_hWnd, GWL_STYLE)
|WS_CLIPCHILDREN);
char str[256];
mapinfo.Do("Open Table \"CHINA\" Interactive");// China为应用的数字地图
sprintf(str, "Set Next Document Parent %lu Style 1 Map From CHINA",
(long)(UINT)m_hWnd);
mapinfo.Do(str);
mapinfo.Do("Set Map Layer CHINA label auto");
m_windowid = atol(mapinfo.Eval("WindowID(0)"));
sprintf(str, "WindowInfo(0, %u)", WIN_INFO_WND);
m_windowhwnd = (HWND)atol(mapinfo.Eval(str));
// END OF ADDED FOR INTEGRATED MAPPING SUPPORT
return 0;
}
void CTestView::OnDestroy()
{
CView::OnDestroy();
// TODO: Add your message handler code here
// ADDED FOR INTEGRATED MAPPING SUPPORT
if (m_windowhwnd) {
::DestroyWindow(m_windowhwnd);
m_windowhwnd = NULL;
m_windowid = 0L;
// END OF ADDED FOR INTEGRATED MAPPING SUPPORT
}
}
void CTestView::OnSize(UINT nType, int cx, int cy)
{
CView::OnSize(nType, cx, cy);
// TODO: Add your message handler code here
// ADDED FOR INTEGRATED MAPPING SUPPORT
if (m_windowhwnd && cx > 0 && cy > 0) {
::MoveWindow(m_windowhwnd, 0, 0, cx, cy, TRUE);
// END OF ADDED FOR INTEGRATED MAPPING SUPPORT
}
}
void CTestView::OnMapLayercontrol()
{
// TODO: Add your command handler code here
mapinfo.RunMenuCommand(M_MAP_LAYER_CONTROL);
}
void CTestView::OnUpdateMapLayercontrol(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
pCmdUI->Enable(m_windowid);
}
void CTestView::OnToolsSelector()
{
// TODO: Add your command handler code here
m_eMouseMode = M_TOOLS_SELECTOR;
mapinfo.RunMenuCommand(M_TOOLS_SELECTOR);
}
void CTestView::OnUpdateToolsSelector(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
pCmdUI->SetRadio(m_eMouseMode == M_TOOLS_SELECTOR);
pCmdUI->Enable(m_windowid);
}
void CTestView::OnToolsGrabber()
{
// TODO: Add your command handler code here
m_eMouseMode = M_TOOLS_RECENTER;
mapinfo.RunMenuCommand(M_TOOLS_RECENTER);
}
void CTestView::OnUpdateToolsGrabber(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
pCmdUI->SetRadio(m_eMouseMode == M_TOOLS_RECENTER);
pCmdUI->Enable(m_windowid);
}
void CTestView::OnToolsZoomin()
{
// TODO: Add your command handler code here
m_eMouseMode = M_TOOLS_EXPAND;
mapinfo.RunMenuCommand(M_TOOLS_EXPAND);
}
void CTestView::OnUpdateToolsZoomin(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
pCmdUI->SetRadio(m_eMouseMode == M_TOOLS_EXPAND);
pCmdUI->Enable(m_windowid);
}
void CTestView::OnToolsZoomout()
{
// TODO: Add your command handler code here
m_eMouseMode = M_TOOLS_SHRINK;
mapinfo.RunMenuCommand(M_TOOLS_SHRINK);
}
void CTestView::OnUpdateToolsZoomout(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
pCmdUI->SetRadio(m_eMouseMode == M_TOOLS_SHRINK);
pCmdUI->Enable(m_windowid);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -