vb程序设计中自己画线怎样使用随机颜色
答案:2 悬赏:40 手机版
解决时间 2021-03-22 17:09
- 提问者网友:两耳就是菩提
- 2021-03-22 10:04
vb程序设计中自己画线怎样使用随机颜色
最佳答案
- 五星知识达人网友:想偏头吻你
- 2021-03-22 11:42
使用Line 方法
在对象上画直线和矩形。
语法
object.Line [Step] (x1, 1) [Step] (x2, y2), [color], [B][F]
Line 方法的语法有以下对象限定符和部分:
部分 描述
object 可选的。 对象表达式,其值为“应用于”列表中的对象。如果object 省略,具有焦点的窗体作为object。
Step 可选的。关键字,指定起点坐标,它们相对于由 CurrentX 和 CurrentY 属性提供的当前图形位置。
(x1, y1) 可选的。Single (单精度浮点数),直线或矩形的起点坐标。ScaleMode 属性决定了使用的度量单位。如果省略,线起始于由 CurrentX 和 CurrentY 指示的位置。
Step 可选的。关键字,指定相对于线的起点的终点坐标。
(x2, y2) 必需的。Single (单精度浮点数),直线或矩形的终点坐标。
color 可选的。Long (长整型数),画线时用的 RGB 颜色。如果它被省略,则使用 ForeColor 属性值。可用 RGB 函数或 QBColor 函数指定颜色。
B 可选的。如果包括,则利用对角坐标画出矩形。
F 可选的。如果使用了 B 选项,则 F 选项规定矩形以矩形边框的颜色填充。不能不用 B 而用 F。如果不用 F 光用 B,则矩形用当前的 FillColor 和 FillStyle 填充。FillStyle 的缺省值为 transparent。
例:
Private Sub Form_Load()
Me.AutoRedraw = True
Line (100, 100)-(2100, 2100), vbBlue, BF
End Sub
在对象上画直线和矩形。
语法
object.Line [Step] (x1, 1) [Step] (x2, y2), [color], [B][F]
Line 方法的语法有以下对象限定符和部分:
部分 描述
object 可选的。 对象表达式,其值为“应用于”列表中的对象。如果object 省略,具有焦点的窗体作为object。
Step 可选的。关键字,指定起点坐标,它们相对于由 CurrentX 和 CurrentY 属性提供的当前图形位置。
(x1, y1) 可选的。Single (单精度浮点数),直线或矩形的起点坐标。ScaleMode 属性决定了使用的度量单位。如果省略,线起始于由 CurrentX 和 CurrentY 指示的位置。
Step 可选的。关键字,指定相对于线的起点的终点坐标。
(x2, y2) 必需的。Single (单精度浮点数),直线或矩形的终点坐标。
color 可选的。Long (长整型数),画线时用的 RGB 颜色。如果它被省略,则使用 ForeColor 属性值。可用 RGB 函数或 QBColor 函数指定颜色。
B 可选的。如果包括,则利用对角坐标画出矩形。
F 可选的。如果使用了 B 选项,则 F 选项规定矩形以矩形边框的颜色填充。不能不用 B 而用 F。如果不用 F 光用 B,则矩形用当前的 FillColor 和 FillStyle 填充。FillStyle 的缺省值为 transparent。
例:
Private Sub Form_Load()
Me.AutoRedraw = True
Line (100, 100)-(2100, 2100), vbBlue, BF
End Sub
全部回答
- 1楼网友:不甚了了
- 2021-03-22 12:18
很简单啊,两种方法:
一、能支持画图的控件都有前景色的设置,更改前景色就可以了,方便安全:forecolor属性
二、如果想用api的话,需要如下步骤:
1、建立画笔
declare function createpen lib "gdi32" (byval npenstyle as long, byval nwidth as long, byval crcolor as long) as long
说明:
用指定的样式、宽度和颜色创建一个画笔
返回值:
long,如函数执行成功,就返回指向新画笔的一个句柄;否则返回零
参数表:
参数 类型及说明
npenstyle long,指定画笔样式,可以是下述常数之一
ps_solid 画笔画出的是实线
ps_dash 画笔画出的是虚线(nwidth必须是1)
ps_dot 画笔画出的是点线(nwidth必须是1)
ps_dashdot 画笔画出的是点划线(nwidth必须是1)
ps_dashdotdot 画笔画出的是点-点-划线(nwidth必须是1)
ps_null 画笔不能画图
ps_insideframe 画笔在由椭圆、矩形、圆角矩形、饼图以及弦等生成的封闭对象框中画图。如指定的准确rgb颜色不存在,就进行抖动处理
nwidth long,以逻辑单位表示的画笔的宽度
crcolor long,画笔的rgb颜色
注解
一旦不再需要画笔,记得用deleteobject函数将其删除
2、关联画笔
declare function selectobject lib "gdi32" alias "selectobject" (byval hdc as long, byval hobject as long) as long
说明:为设备场景指定画笔,也可以是刷子等,这里用画笔
参数表
参数 类型及说明
hdc long,一个设备场景的句柄
hobject long,一个画笔、位图、刷子、字体或区域的句柄
3、作图
省略
4、删除画笔
declare function deleteobject lib "gdi32" alias "deleteobject" (byval hobject as long) as long
不用的画笔一定要删除
总的来说不如直接更改forecolor来的方便。但适用范围广,比如在不是本程序的地方也可以画图。
例句:
声明:
declare function deleteobject lib "gdi32" (byval hobject as long) as long '删除画笔
declare function selectobject lib "gdi32" (byval hdc as long, byval hobject as long) as long '为设备场景指定画笔等
declare function polyline lib "gdi32" (byval hdc as long, lppoint as pointapi, byval ncount as long) as long '画线
declare function createpen lib "gdi32" (byval npenstyle as long, byval nwidth as long, byval crcolor as long) as long '创建画笔
type pointapi
x as long
y as long
end type
代码:
dim dian(5) as pointapi, bi as long
'me.forecolor = rgb(255, 255, 0)'用第一种方法,只用一句代码即可
bi = createpen(0, 1, rgb(255, 0, 255))
selectobject me.hdc, bi
print bi
dian(0).x = 0
dian(0).y = 0
dian(1).x = 100: dian(1).y = 120
dian(2).x = 50: dian(2).y = 30
'.......此处省略
polyline me.hdc, dian(0),6
deleteobject bi
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯