有一段autoLISP程序可以修改图层。 *** 作方法:先点击参考图层,然后选择对象,那么所以的对象变为参考图层。
(defun C:XG (/ #os1 &k1 #k1 %k1 &kw i %k2)(setvar "cmdecho" 0)
(setvar "blipmode" 0)
(setq #os1 (getvar "osmode"))
(setvar "osmode" 0)
(setq &k1 (entsel "\n请选择参考图层"))
(if (= &k1 nil)
(princ "\n没有选择参考图层")
)
(if (/= &k1 nil)
(progn
(setq &k1 (car &k1)
#k1 (entget &k1)
%k1 (assoc 8 #k1)
)
(princ "\n请选择需要改变的对象")
(setq &kw (ssget))
(if (= &kw nil)
(princ "\n没有选择对象")
)
(if (/= &kw nil)
(progn
(setq i 0)
(repeat (sslength &kw)
(setq &k1 (ssname &kw i)
#k1 (entget &k1)
%k2 (assoc 8 #k1)
#k1 (subst
%k1
%k2
#k1
)
i (+ i 1)
)
(entmod #k1)
)
(princ "\n改变图层完成")
)
)
)
)
(setvar "osmode" #os1)
(prin1)
)复制到记事本,以【.lsp】为后缀命名,加载autoLISP就可以使用。命令为:XG
做多个PictureBox太累了,你只要一个,然后用PIctureBox的AutoReDraw和PaintPicture就可以了,PaintPicture可缩放,也可以垂直或水平翻转,就像PS一样,图层只不过是想像中存在,加载时也可以Picture1.paintpicture loadpicture("图层1"),0,0
Picture1.paintpicture loadpicture("图层2"),0,0
Picture1.paintpicture loadpicture("图层2"),0,0宽(放大后),高(放大后),0,0,宽(原图),高(原图)
vb6无非就是把API包装化用起来方便点,什么VB2008也不过如此,目前对我来说是这样,看着VB2005的Picturebox我真的愣了好长时间,连个HDC都找不到T_T,最后还是用回VB6。
你把你的几个图层生成一个gst文件,用mapx调用gst文件就能显示地图了。我只有C#的调用方式,axMap1.GeoSet = Application.StartupPath + "//Map//map.gst"我也是做mapx开发的,有空到我的百度空间交流一下。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)