+ -
当前位置:首页 → 问答吧 → 高手请教:在下面的程序中,为什么点击窗体后圆不会被颜色填充?

高手请教:在下面的程序中,为什么点击窗体后圆不会被颜色填充?

时间:2011-11-04

来源:互联网

Private Declare Function FloodFill Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As Long


Private Sub Form_Click()
Me.FillStyle = 0
Me.FillColor = vbRed
 FloodFill Me.hdc, 2000 / 15, 2000 / 15, vbBlue
End Sub

Private Sub Form_Load()

Me.AutoRedraw = True

Me.Circle (2000, 2000), 1000, vbBlue
End Sub

作者: caijiji22   发布时间: 2011-11-04

几个条件,
FloodFill要用象素坐标?
要用画笔?
FloodFill中指定的x,y要显示出来?
api和AutoRedraw没关系?

VB code

Private Sub Form_Click()
    Dim hBrush As Long, hdc As Long
    hdc = GetDC(Form1.hwnd)
    hBrush = CreateSolidBrush(RGB(255, 0, 0)) ' 建立 brush 物件
    
    Call SelectObject(hdc, hBrush) ' 将 brush 物件设定给 DC
    ' 接着再呼叫 FloodFill, 例如:
    Call FloodFill(hdc, Me.ScaleWidth / 2, Me.ScaleHeight / 2, RGB(0, 0, 255))
End Sub

Private Sub Form_Load()
    Me.ScaleMode = 3
    Me.AutoRedraw = True
    Me.Circle (Me.ScaleWidth / 2, Me.ScaleHeight / 2), IIf(Me.ScaleWidth > Me.ScaleHeight, Me.ScaleWidth / 2, Me.ScaleHeight / 2), vbBlue
End Sub


作者: spt_petrolor   发布时间: 2011-11-04