地图窗口镶嵌.mb

来自「很多的MAPINFO的常见问题下载后可以学习很有帮助」· MB 代码 · 共 40 行

MB
40
字号
'不仅在OLE方式下,而且在Mapbasic中,也可以使用set Next Document功能,
'可以在一个父窗口中嵌入其它窗口,如:custom legend window,map/browse window 等,
'但系统窗口,如:ruler window,系统legend window(用Open Window Legend语句)等,则无法作为子窗口嵌入进去。
Dim winid as float
close all interactive
Open Table "C:\Program Files\MapInfo\Professional\Data\USA\States.tab" Interactive
Open Table "C:\Program Files\MapInfo\Professional\Data\USA\Statecap.tab" Interactive
Open Table "C:\Program Files\MapInfo\Professional\Data\USA\Us_hiway.tab" Interactive
Open Table "C:\Program Files\MapInfo\Professional\Data\WORLD\Ocean.tab" Interactive
Open Table "C:\Program Files\MapInfo\Professional\Data\WORLD\World.tab" Interactive
Open Table "C:\Program Files\MapInfo\Professional\Data\WORLD\Grid15.tab" Interactive

Map From States
Add Map Auto Layer Statecap
Add Map Auto Layer Us_hiway

winid=windowid(0)

shade window winid 3 with Pop_1980 ranges apply all use color Brush (2,65280,16777215)  400000: 1000000 Brush (2,65280,16777215) Pen (1,2,0) ,1000000: 2500000 Brush (2,5308160,16777215) Pen (1,2,0) ,2500000: 4100000 Brush (2,11599616,16777215) Pen (1,2,0) ,4100000: 5700000 Brush (2,16760896,16777215) Pen (1,2,0) ,5700000: 23700000 Brush (2,16744576,16777215) Pen (1,2,0) default Brush (2,16777215,16777215) Pen (1,2,0)  
set Next Document Parent WindowInfo(winid,12) Style 1
Create Legend From Window winid

'(注意,这时Legend Window 的window ID等于windowid(0),
'而Map Window的window ID已等于windowid(1)。)

set window winid max

set Next Document Parent WindowInfo(winid,12) Style 1
Browse * from states
set window windowid(0) Position(0,3.3) Width 3  Height 1.5

'注意,这时对子窗口world的图层控制有问题,当改变子窗口world的图层控制时,
'实际上改变了父窗口的图层控制
set Next Document Parent WindowInfo(winid,12) Style 1
Map From Ocean
Add Map Auto Layer World
Add Map Auto Layer Grid15
set window windowid(0) Position(5.3,3.3) Width 3  Height 1.5

⌨️ 快捷键说明

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