该源代码如何把PictureBox图片保存出去?

hzeric 2005-05-12 04:51:02
前几天我从网上找一个可以把截取屏幕界面到PictureBox的源代码,但我去不知如何把它保存为Jpg 或Bmp文件,曾经试过用"SavePicture Picture1.Picture"但也没用,因为可能是Picture1.Picture里面是为空的.所以无法保存.请各路高手指点迷津,在下感激不已!!!
(附源代码如下)

Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function StretchBlt Lib "gdi32" (ByVal hdc 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 nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long
-------------------------------------------------------------------------------
Private Sub Command1_Click()
Dim wScreen As Long
Dim hScreen As Long
Dim w As Long
Dim h As Long
Dim pic As PictureBox
Picture1.Cls
wScreen = Screen.Width \ Screen.TwipsPerPixelX
hScreen = Screen.Height \ Screen.TwipsPerPixelY
Picture1.ScaleMode = vbPixels
w = Picture1.ScaleWidth
h = Picture1.ScaleHeight
hdcScreen = GetDC(0)
p = StretchBlt(Picture1.hdc, 0, 0, w, h, hdcScreen, 0, 0, wScreen, hScreen, vbSrcCopy)
End Sub
...全文
106 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
online 2005-05-13
  • 打赏
  • 举报
回复
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function StretchBlt Lib "gdi32" (ByVal hdc 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 nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long
'-------------------------------------------------------------------------------
Private Sub Command1_Click()
Dim wScreen As Long
Dim hScreen As Long
Dim w As Long
Dim h As Long
Dim pic As PictureBox
Picture1.Cls
Picture1.AutoRedraw = True
wScreen = Screen.Width \ Screen.TwipsPerPixelX
hScreen = Screen.Height \ Screen.TwipsPerPixelY
Picture1.ScaleMode = vbPixels
w = Picture1.ScaleWidth
h = Picture1.ScaleHeight
hdcScreen = GetDC(0)
p = StretchBlt(Picture1.hdc, 0, 0, w, h, hdcScreen, 0, 0, wScreen, hScreen, vbSrcCopy)
Picture1.Refresh

End Sub

Private Sub Command2_Click()
SavePicture Picture1.Image, "c:\111.bmp"
End Sub
tztz520 2005-05-13
  • 打赏
  • 举报
回复
主要是加上Picture1.AutoRedraw = True
seraph2 2005-05-13
  • 打赏
  • 举报
回复
没遇到过你这样的问题,我用SAVEPICTURE PICTURE,路径+文件名
都可以保存啊!
除非你的picture那个参数是空的!但正常情况下,PICTURE1。PICTURE只要获得对象就不可能为空啊!

1,451

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧