vb中如何在picturebox中加点
在picturebox中有一张地图,我有一些点,知道它们的坐标保存在数据库或者excel里,我想选择某些点在地图上显示的时候地图上就出现这些点,重新选择时之前选择出现的点...
在picturebox中有一张地图,我有一些点,知道它们的坐标保存在数据库或者excel里,我想选择某些点在地图上显示的时候地图上就出现这些点,重新选择时之前选择出现的点也能消失不会再地图上留痕迹,是直接画点画圆就可以还是需要其他的思路,麻烦大家指点一下,最好有段简单的代码,真心求教,采纳会追加悬赏,谢谢!
展开
展开全部
比如,你的PictureBox 是 Picture1
那么将他的AutoRedraw属性设置为True,ScaleMode设置为3(也可以用代码设置为vbPixels)
然后在画点的地方加代码
Picture1.PSet (X,Y),Color
X是水平左边距,Y是垂直距离,Color是颜色值,可以用RGB函数,也可以用常量,如
Picture1.PSet (100,100),vbRed '在(100,100)画一个红点
Picture1.PSet (102,102),RGB(0,255,0) '在(102,102)画一个绿点
那么将他的AutoRedraw属性设置为True,ScaleMode设置为3(也可以用代码设置为vbPixels)
然后在画点的地方加代码
Picture1.PSet (X,Y),Color
X是水平左边距,Y是垂直距离,Color是颜色值,可以用RGB函数,也可以用常量,如
Picture1.PSet (100,100),vbRed '在(100,100)画一个红点
Picture1.PSet (102,102),RGB(0,255,0) '在(102,102)画一个绿点
追问
你好,是不是说我想显示某些点的时候就用pset,然后更换显示的点的时候就再pset画一遍?这些点会留下痕迹吗?还是因为autoredraw设置为true就不会了?这些点如何保存呢?谢谢!
追答
我大概了解你的水平,这里的话我尽可能的教你方法,而不是贴代码
要了解整整意义的画图,还得从GDI说起,挺复杂的,而且需要有一些计算机图形学的基础
不过现在看来,这些都不必要了,因为这些跟你的功能偏离有些大,可以完全不用那么做
你只需要在Picture上加一个带透明的Image控件,移动到特定位置就可以了
这些既可以显示不规则的图标,又能用Visible轻易的开关显示
关于动态添加控件,可以用数组的方法,也可以参考这里
http://blog.csdn.net/prsniper/article/details/6735463
以及里面两条链接
然后是回答追问,PSet方法 其实会把指针指向API SetPixel函数,所有这些类似的操作都是Windows的GDI画图操作,会在对应的DC得到做出的图形
而AutoRedraw属性是自动重画,也就是说如果不设置为True,那么你无论怎么画都不会显示,除非你调用Picture1.Refresh类似的操作,反之,则你每进行一个画图操作,哪怕只画一个点,都会立即更新
你所做的画图会累计显示,如果想重置就调用Picture1.Clear
否则你就保存一些坐标数组,每个操作重新生成,这样数据结构相对复杂,我认为并不适合你
不过这样做速度会快些。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询