Private Declare Function CreateBrushIndirect Lib "gdi32" (lpLogBrush As LOGBRUSH) As Long Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long Private Declare Function Ellipse Lib "gdi32" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long Dim hDesktopDC As Long Private Type LOGBRUSH lbStyle As Long lbColor As Long lbHatch As Long End Type Private Const BS_HATCHED = 2 Private Const BS_SOLID = 0 Dim hBrush As Long Dim holdBrush As Long Dim brush As LOGBRUSH Dim oldBrush As LOGBRUSH Private Sub Command1_Click() hBrush = CreateBrushIndirect(brush) '创建刷子 holdBrush = SelectObject(hDesktopDC, hBrush) '选择刷子 Ellipse hDesktopDC, 100, 100, 150, 200 '画椭园 SelectObject hDesktopDC, holdBrush '恢复刷子 End SubPrivate Sub Form_Load() hDesktopDC = GetDC(0) With brush .lbColor = RGB(0, 255, 0) .lbHatch = BS_HATCHED .lbStyle = BS_SOLID End With End Sub
windows还是vb窗体上?
FillStyle = 0
FillColor = &H00FF0000&
步骤:
得到屏幕DC
创建一个画笔
选定画笔
创建一个刷子
选定刷子
最后用RoundRect
Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long
Private Declare Function Ellipse Lib "gdi32" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Dim hDesktopDC As Long
Private Type LOGBRUSH
lbStyle As Long
lbColor As Long
lbHatch As Long
End Type
Private Const BS_HATCHED = 2
Private Const BS_SOLID = 0
Dim hBrush As Long
Dim holdBrush As Long
Dim brush As LOGBRUSH
Dim oldBrush As LOGBRUSH
Private Sub Command1_Click()
hBrush = CreateBrushIndirect(brush) '创建刷子
holdBrush = SelectObject(hDesktopDC, hBrush) '选择刷子
Ellipse hDesktopDC, 100, 100, 150, 200 '画椭园
SelectObject hDesktopDC, holdBrush '恢复刷子
End SubPrivate Sub Form_Load()
hDesktopDC = GetDC(0)
With brush
.lbColor = RGB(0, 255, 0)
.lbHatch = BS_HATCHED
.lbStyle = BS_SOLID
End With
End Sub