注册 登录
编程论坛 VB6论坛

实在不明白,问一下,api填色的问题

txxb 发布于 2015-03-19 19:33, 398 次点击
Private Sub Form_Load()
Line (100, 100)-(100, 5500)
Line -(5500, 5500)
Line -(100, 100)
'b = CreateSolidBrush(vbRed) '建立,设定涂刷brush物件为红色
Call SelectObject(Form2.hdc, CreateSolidBrush(vbRed)) '将红色的涂刷brush物件设定给form2.hdc
Call ExtFloodFill(Form2.hdc, 10, 200, Form2.Point(10, 200), 1)

上面代码运行正常,问题是把后面2行删掉,放到Private Sub Form_Click()里面,就不行了,,为什么??
感觉很神奇。经过多次尝试,发现要连line语句一起移走,,才行,
很困惑。
3 回复
#2
txxb2015-03-19 19:42
Call SelectObject(Form2.hdc, CreateSolidBrush(vbRed)) 'ì戀爀甀猀栀è¨昀漀爀洀2.hdc
Call ExtFloodFill(Form2.hdc, 10, 200, vbBlack, 0)
''DoEvents
'MsgBox ""
Call SelectObject(Form2.hdc, CreateSolidBrush(vbYellow)) 'ì戀爀甀猀栀è¨昀漀爀洀2.hdc
Call ExtFloodFill(Form2.hdc, 10, 200, vbBlack, 0)
还有这样用的话,后面2行不起作用,,,,vb里复制出来怎么是乱码
#3
lianyicq2015-03-20 09:45
回复 楼主 txxb
程序代码:
Option Explicit
Private Declare Function ExtFloodFill Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long, ByVal wFillType As Long) As Long
Private Declare Function CreateSolidBrush Lib "gdi32" (ByVal crColor As Long) As Long
Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long

Private Sub Form_Click()
Call SelectObject(Form2.hdc, CreateSolidBrush(vbRed)) '将红色的涂刷brush物件设定给form2.hdc
Call ExtFloodFill(Form2.hdc, 10, 200, Form2.Point(10, 200), 1)
End Sub

Private Sub Form_Load()
Form2.Show
Line (100, 100)-(100, 5500)
Line -(5500, 5500)
Line -(100, 100)
End Sub
点击form前
只有本站会员才能查看附件,请 登录

点击form后
只有本站会员才能查看附件,请 登录
#4
txxb2015-03-20 13:54
原因找到了,没有及时刷新窗体所致,
加了Form1.Refresh好了
为什么总有一些新问题不断出现
1