以下是引用xzlxzlxzl在2015-1-29 14:05:52的发言:
可能我在12楼说的有点过,sorry!
我想lianyicq版主也明白我的意思。你这样问问题是学不到什么的,不经过思考,张嘴就问,也许,你最后做成了一个小东西,但做完就做完了,你收获肯定不大。
就你这个问题,其实在lianyicq版主给出实例前我也没接触过,不过通过看lianyicq例子我能总结出填充函数需要五个关键要素:1、场景hdc,目前vb里能直接获取hdc的就form和picture两个(没详细总结,可能有误),2、设置场景的填充样式fillstyle<>1,因为1为透明,看不到填充效果,3、设置场景填充颜色fillcolor=你需要的颜色,4、设置填充开始坐标,5、填充模式,0:边界模式,必须指定边界颜色,填充到该颜色停止,lianyicq版主实例使用该模式;1:颜色替换模式,指定替换色,碰到不是该颜色时停止填充。填充模式是百度到的。
补充说明:vb form的度量单位默认为twip,即使你设定了scalemode=3,只能对窗体工作区内起作用,对窗体外框不起作用,因此窗体的width、height的单位仍然是twip,如果使用默认的scalewidth和scaleheight一般是你设置的pixel。
有了上述提示,希望你编程成功,真正进步。
可能我在12楼说的有点过,sorry!
我想lianyicq版主也明白我的意思。你这样问问题是学不到什么的,不经过思考,张嘴就问,也许,你最后做成了一个小东西,但做完就做完了,你收获肯定不大。
就你这个问题,其实在lianyicq版主给出实例前我也没接触过,不过通过看lianyicq例子我能总结出填充函数需要五个关键要素:1、场景hdc,目前vb里能直接获取hdc的就form和picture两个(没详细总结,可能有误),2、设置场景的填充样式fillstyle<>1,因为1为透明,看不到填充效果,3、设置场景填充颜色fillcolor=你需要的颜色,4、设置填充开始坐标,5、填充模式,0:边界模式,必须指定边界颜色,填充到该颜色停止,lianyicq版主实例使用该模式;1:颜色替换模式,指定替换色,碰到不是该颜色时停止填充。填充模式是百度到的。
补充说明:vb form的度量单位默认为twip,即使你设定了scalemode=3,只能对窗体工作区内起作用,对窗体外框不起作用,因此窗体的width、height的单位仍然是twip,如果使用默认的scalewidth和scaleheight一般是你设置的pixel。
有了上述提示,希望你编程成功,真正进步。
感谢版主的耐心回复
我不是为了完成具体的项目来问问题的。我自学VB三个月了,做了一些小玩意,总感觉无法再提高,自己给自己出一些题目,自己再完成,想通过实践提高技术。
这次本来我想做个旋转的正方体,想到了六面要上色,百度到了API,知道了ExtFloodFill,网上狂搜,很遗憾几乎没有教程(我要实例加讲解式的,手册式的教程我看不下去),才来这里问的。
可能因为我是自学的,一些基本概念还是不清楚,form.scalewidth和form.width和form.scalemode的互相关系就不是非常清楚。fillstyle<>1,因为1为透明,看不到填充效果,这个我也才知道。多边形的画法也是在这个帖子刚学会,以前只会用控件line做。可能就是在这些基础问题上你认为我不自己思考,其实不是的。