|
|
<html>
<head>
<script language="javascript">
<!--
function MapEvent_OnMouseUp(Flag, X, Y)
{
if (Flag == 2)
{
// ¿À¸¥ÂÊ ¸¶¿ì½º ¹öư Ŭ¸¯
var ctrlman = m_Map.GetCtrlMan();
var ctrlstate = ctrlman.GetControlState();
var uiman = ctrlman.GetUIMan();
var size = ctrlstate.GetSizeDP();
var menu = m_Map.GetApplication().GetPopupMenu();
var item;
menu.Create();
var submenu = menu.AppendSubMenu("XLayer", "·¹ÀÌ¾î °ü·Ã");
item = submenu.AppendString(1, "New Polygon", "Polygon", "Contents 1", 1);
submenu.AppendSeparator();
submenu = menu.AppendSubMenu("Index Map", "À妽º ¸Ê °ü·Ã");
var indexmap = ctrlman.GetIndexMap();
if (indexmap.IsIndexMapVisible())
{
item = submenu.AppendString(10, "Hide", "XIndexMap", "Contents 2", 2);
if (indexmap.IsMinimized())
{
item = submenu.AppendString(11, "È®´ë", "XIndexMap", "Contents 2", 2);
}
else
{
item = submenu.AppendString(11, "Ãà¼Ò", "XIndexMap", "Contents 2", 2);
}
}
else
{
item = submenu.AppendString(10, "Show", "XIndexMap", "Contents 2", 2);
}
var pos = uiman.ClientToScreen(X, Y);
item = menu.TrackPopupMenu(Flag, pos._X, pos._Y);
if (item)
{
switch (item.GetID())
{
case 1:
{
var layerman = ctrlman.GetLayerMan();
var util = m_Map.GetUtility();
var posLL = ctrlstate.GetLLCenter(); // ÁöµµÀÇ Á᫐ ÁÂÇ¥
var style = layerman.NewStyle(-1);
style.SetPen(util.RGBColor(255, 0, 0), 0.3, util.GetConstToValue("PS_SOLID"));
style.SetBrush(util.RGBAColor(0, 0, 255, 100), util.GetConstToValue("BS_SOLID"));
var polygon = layerman.NewPolygon(1, -1);
polygon.BeginUpdate();
polygon.AddPoint(posLL._X + 100, posLL._Y + 100);
polygon.AddPoint(posLL._X + 100, posLL._Y + 500);
polygon.AddPoint(posLL._X + 500, posLL._Y + 500);
polygon.AddPoint(posLL._X + 500, posLL._Y + 100);
polygon.SetClosed(1); // 0: PolyLine, 1: Polygon
polygon.SetStyle(style);
polygon.EndUpdate();
}
break;
case 10:
{
// ÃʱâÈ
if (indexmap.GetIndexMapLeft() == -1000 || indexmap.GetIndexMapTop() == -1000)
{
indexmap.SetIndexMapLeft(size._CX - indexmap.GetIndexMapWidth() - 10);
indexmap.SetIndexMapTop(10);
}
if (indexmap.IsMinimized())
indexmap.SetNormal();
if (indexmap.IsIndexMapVisible())
indexmap.HideIndexMap();
else
indexmap.ShowIndexMap();
}
break;
case 11:
{
if (indexmap.IsMinimized())
indexmap.SetNormal();
else
indexmap.SetMinimize();
}
break;
}
}
menu.DestroyPopupMenu();
}
}
-->
</script>
<script language="javascript" for="m_Map" event="OnCreate(Flag)">
<!--
MapEvent_OnCreate(Flag);
-->
</script>
<script language="javascript" for="m_Map" event="OnMouseUp(Flag, X, Y)">
<!--
MapEvent_OnMouseUp(Flag, X, Y);
-->
</script>
</head>
<body>
<table>
<tr>
<td>
<OBJECT ID="Map" CLASSID="CLSID:DD9B48AD-EDDC-4D2C-BD68-D1FB4B382024"
codebase='http://localhost/TalMapX_Web.CAB#version=1,0,0,17' width=100% height=80%>
</OBJECT>
</td>
</tr>
</table>
</body>
</html>
|
|
|
#include "talmapxctrl1.h"
#include "CXCtrlMan.h"
#include "CXControlState.h"
#include "CXIndexMap.h"
#include "CXPopupMenu.h"
#include "CXPopupMenuItem.h"
#include "CXApplication.h"
#include "CXSize.h"
#include "CXPoint.h"
#include "CXUtility.h"
#include "CXLayerMan.h"
#include "CXLayerStyle.h"
#include "CXLayerPolygon.h"
BEGIN_EVENTSINK_MAP(CSampleDlg, CDialog)
ON_EVENT(CSampleDlg, IDC_TALMAPXCTRL1, 3, CSampleDlg::OnMouseUpTalmapxctrl1, VTS_I4 VTS_I4 VTS_I4)
END_EVENTSINK_MAP()
void CSampleDlg::OnMouseUpTalmapxctrl1(long Flag, long X, long Y)
{
if (Flag == 2) {
CXControlState ctrlstate = ctrlman.GetControlState();
CXSize size = ctrlstate.GetSizeDP();
CXUIMan uiman = ctrlman.GetUIMan();
CXApplication app = m_Map.GetApplication();
CXPopupMenu menu = app.GetPopupMenu();
menu.Create();
CXPopupMenu submenu = menu.AppendSubMenu("Lyaer", "Lyaer °ü·Ã");
CXPopupMenuItem item = submenu.AppendString(1, "New Polygon", "Polygon", "Contents 1", 1);
submenu.AppendSeparator();
submenu = menu.AppendSubMenu("Index Map", "À妽º ¸Ê °ü·Ã");
CXIndexMap indexmap = ctrlman.GetIndexMap();
if(indexmap.IsIndexMapVisible()) {
item = submenu.AppendString(10, "Hide", "IndexMap", "Contents 2", 2);
submenu.AppendSeparator();
if (indexmap.IsMinimized())
{
item = submenu.AppendString(11, "È®´ë", "IndexMap", "Contents 2", 2);
}
else
{
item = submenu.AppendString(11, "Ãà¼Ò", "IndexMap", "Contents 2", 2);
}
} else {
item = submenu.AppendString(10, "Show", "IndexMap", "Contents 2", 2);
}
CXPoint point = uiman.ClientToScreen(X, Y);
CXPoint centerLL = ctrlstate.GetLLCenter();
item = menu.TrackPopupMenu(Flag, point.GetX(), point.GetY());
if (item.m_lpDispatch != NULL) {
switch(item.GetID()) {
case 1: {
CXLayerMan layerman = ctrlman.GetLayerMan();
CXUtility util = m_Map.GetUtility();
CXLayerStyle style = layerman.NewStyle(-1);
style.SetPen(util.RGBColor(255, 0, 0), 1, util.GetConstToValue("PS_SOLID"));
CXLayer layer = layerman.FindLayer(1);
if (layer.m_lpDispatch == NULL) layer = layerman.NewLayer(1);
CXLayerPolygon polygon = layer.NewPolygon(-1);
polygon.BeginUpdate();
polygon.AddPoint(centerLL.GetX() + 100, centerLL.GetY() + 100);
polygon.AddPoint(centerLL.GetX() + 100, centerLL.GetY() + 500);
polygon.AddPoint(centerLL.GetX() + 500, centerLL.GetY() + 500);
polygon.AddPoint(centerLL.GetX() + 500, centerLL.GetY() + 100);
polygon.SetClosed(1); //Polyline
polygon.SetStyle(style);
polygon.EndUpdate();
} break;
case 10: ShowIndexMap();break;
case 11: {
if (indexmap.IsMinimized()) indexmap.SetNormal();
else indexmap.SetMinimize();
}break;
}
}
}
}
// À妽º¸Ê
void CSampleDlg::ShowIndexMap()
{
CXControlState ctrlstate = ctrlman.GetControlState();
CXSize size = ctrlstate.GetSizeDP();
CXIndexMap indexmap = ctrlman.GetIndexMap();
// À妽º¸Ê Ç¥Ãâ
if (indexmap.IsIndexMapVisible() == false) {
indexmap.SetIndexMapLeft(size.GetCX() - (indexmap.GetIndexMapWidth() + 30));
indexmap.SetIndexMapTop(size.GetCY() - (indexmap.GetIndexMapHeight() + 10));
indexmap.ShowIndexMap();
} else {
// À妽º¸Ê ¼û±è
indexmap.HideIndexMap();
}
if (indexmap.IsMinimized() == TRUE)
indexmap.SetNormal();
}
|
|