如何绘制圆形图像?

     这是我刚刚在论坛中回复一个网友贴子时写的代码。其实我们想到绘制一个异形图像时完全可以指定一个绘图区域来完成。

 

 

Private  Declare  Function  CreateEllipticRgn Lib  " gdi32 "  (ByVal X1  As   Long , ByVal Y1  As   Long , ByVal X2  As   Long , ByVal Y2  As   Long As   Long
Private  Declare  Function  DeleteObject Lib  " gdi32 "  (ByVal hObject  As   Long As   Long
Private  Declare  Function  SelectObject Lib  " gdi32 "  (ByVal hdc  As   Long , ByVal hObject  As   Long As   Long
Private  Declare  Function  BitBlt Lib  " gdi32 "  (ByVal hDestDC  As   Long , ByVal x  As   Long , ByVal y  As   Long , ByVal nWidth  As   Long , ByVal nHeight  As   Long , ByVal hSrcDC  As   Long , ByVal xSrc  As   Long , ByVal ySrc  As   Long , ByVal dwRop  As   Long As   Long


Private   Sub  Command1_Click()
    
Dim  lngPrevRgn  As   Long
    
Dim  lngNewRgn  As   Long
    
    Picture1.Cls
    
    
If  Check1.Value  =   1   Then
        
' ' 建立一个圆形区域
        lngNewRgn  =  CreateEllipticRgn( 0 0 CLng (Picture1.ScaleWidth),  CLng (Picture1.ScaleHeight))
        
' ' 将建立的区域选入绘图场景
        lngPrevRgn  =  SelectObject(Picture1.hdc, lngNewRgn)
    
End   If
    
    
' ' 绘图
    BitBlt Picture1.hdc,  0 0 , Picture1.ScaleWidth, Picture1.ScaleWidth, Picture2.hdc,  0 0 , vbSrcCopy
    
    
If  Check1.Value  =   1   Then
        
' ' 释放建立的区域
        DeleteObject SelectObject(Picture1.hdc, lngPrevRgn)
    
End   If
End Sub
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

韧恒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值