请教如何利用VB加载GDI+

请教如何利用VB加载GDI+,第1张

shell "路径" ;先调用

然后

Private Declare Function GetDC Lib "user32" (ByVal hwnd 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 Form_Load()

Me.Hide

Me.AutoRedraw = True

BitBlt Me.hDC, 0, 0, Screen.Width, Screen.Height, GetDC(0), 0, 0, vbSrcCopy

sFile$ = "C:\" &Format(Now, "mmddhhmmss") &".BMP"

SavePicture Me.Image, sFile

MsgBox "当前屏幕图像已经保存到" &sFile, 64

End

End Sub;保存截图

方案一.

使用Declare的方式,声明所有需要用到的GDI函数,在PictureBox的DC上完成绘图

方案二.

VB本身也提供有绘图函数,直接用之即可

绘图时使某一个颜色值透明 此示例是过滤纯白颜色

Private Declare Function GdiTransparentBlt Lib "gdi32" (ByVal hdc1 As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal W1 As Long, ByVal H1 As Long, ByVal Hdc2 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal W2 As Long, ByVal H2 As Long, ByVal Color As Long) As Long

Private Sub Command1_Click()

GdiTransparentBlt Me.hDC, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight, _

Picture1.hDC, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight, RGB(255, 255, 255)

Me.Refresh

End Sub

Private Sub Form_Load()

Me.AutoRedraw = True

Me.ScaleMode = 3

Picture1.AutoRedraw = True

Picture1.ScaleMode = 3

End Sub


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11629794.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-17
下一篇2023-05-17

发表评论

登录后才能评论

评论列表(0条)

    保存