如何绘制圆形图像?
来源:互联网 发布:mac暂存盘已满怎么办 编辑:程序博客网 时间:2024/04/30 11:53
这是我刚刚在论坛中回复一个网友贴子时写的代码。其实我们想到绘制一个异形图像时完全可以指定一个绘图区域来完成。
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
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
- 如何绘制圆形图像?
- 图像的绘制 直线 椭圆 圆形 多边形
- 教你如何绘制圆形头像
- 如何绘制圆形百分比加载圈
- 绘制圆形
- iOS在控制器中绘制圆形图像,二维码
- 如何使用Graphics绘制图像
- 如何绘制图像验证码
- OpenCV中,在图像上覆盖绘制另一幅图圆形图像
- GDI+ 如何将图片绘制成圆形的图片
- quartz2D 如何绘制圆形图片, 及圆环图片
- 如何:绘制具有透明度的图像
- 如何在symbian下绘制Gif图像
- 如何保存Matlab绘制出来的图像
- 如何使用图像绘制区域wpf
- iOS 如何提升图像绘制性能
- 绘制圆形按钮
- 【Html5】canvas绘制圆形
- 水晶简介
- 范式说明
- 两种数据库二进制字段存取控制方式的对比
- 連接任何數據庫
- 哀
- 如何绘制圆形图像?
- 孤独的灵魂 2006-10-17
- How to do custom statistic in OPNET
- [软工]说不
- 面试有感——只为了完成任务很多年以后脑袋里面什么也不会留下
- VC6(SP6)+STLPort4.6.2安装全攻略
- 从窗口飞出的大学生,你绝不象化蝶那么优美!
- 简单的ASP.NET三层架构数据库后台
- Repeater控件