VB中控件Line的问题

DimlyAsLongDimlscaleheightAsLongDimlscalewidthAsLongScaleMode=vbPixelslscaleheight=Sc... Dim ly As Long
Dim lscaleheight As Long
Dim lscalewidth As Long
ScaleMode = vbPixels
lscaleheight = ScaleHeight
lscalewidth = ScaleWidth
DrawStyle = vbInvisible
FillStyle = vbFSSolid
For ly = 0 To lscaleheight
FillColor = RGB(0, 0, 255 - (ly * 255) \ lscaleheight)
Line (-1, ly - 1)-(lscalewidth, ly + 1), , B
在这个程序中, Line (-1, ly - 1)-(lscalewidth, ly + 1), , B中的 (-1, ly - 1)-(lscalewidth, ly + 1)是矩形的两个对角点吗?但是我把它改成 (-1, ly - 1)-(lscalewidth, ly)怎么就无法实现之前的功能了?改成 (-1, ly )-(lscalewidth, ly )便可以~为什么,求高手详细的解答。。。
展开
 我来答
网海1书生
科技发烧友

2013-11-19 · 擅长软件设计、WEB应用开发、小程序
网海1书生
采纳数:12311 获赞数:26231

向TA提问 私信TA
展开全部
DrawStyle = vbInvisible的意思是把绘图的框线设为透明,因此:

Line (-1, ly - 1)-(lscalewidth, ly + 1), , B '这时候边框是透明的,是看不到的,而中间有1像素的高度显示的是FillColor颜色;

Line (-1, ly - 1)-(lscalewidth, ly), , B '这时候矩形的上下边框是紧挨着的,而且是透明的,是看不到的,因此整个矩形就都变成透明了,看不到了;

Line (-1, ly)-(lscalewidth, ly), , B '这时候矩形的上下边框是重叠的,这种情况VB会进行特殊处理,把它看作是直线(不再是矩形),显示的是FillColor颜色(因为直线是没有边框的)。

因此,上述情况1、3可实现你要的功能,而2则不能实现。
事实上只要把DrawStyle = vbInvisible这行删掉或改为DrawStyle = 0则上述三种情况都变得OK了!
设计营地
2013-11-19 · 分享交流设计软件相关的知识
设计营地
采纳数:552 获赞数:860

向TA提问 私信TA
展开全部

Line 方法

       

在对象上画直线和矩形。

语法

object.Line [Step] (x1, 1) [Step] (x2, y2), [color], [B][F]

Line 方法的语法有以下对象限定符和部分:

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式