
vb求截取区域屏幕图并保存为文件```的代码
就像QQ截图一样```不是全屏,是可以指一定范围```为了代码的简单,范围可以设为具体值```并自动保存为文件...
就像QQ截图一样```不是全屏,是可以指一定范围```
为了代码的简单,范围可以设为具体值```
并自动保存为文件 展开
为了代码的简单,范围可以设为具体值```
并自动保存为文件 展开
3个回答
展开全部
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function ReleaseDC _
Lib "user32" (ByVal hwnd As Long, _
ByVal hdc 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 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
'首先,在窗体上添加个图片框PictureBox控件Name为Picture1
'截取指定位置指定大小的区域,保存到c:\1.bmp文件
Private Sub Form_Load()
Dim hDCtmp As Long
Dim w, h, X, Y
w = 300 ' 要截取屏幕部分的宽度
h = 300 ' 要截取屏幕部分的高度
X = 300 ' 横坐标 / 左边界 Left
Y = 300 ' 纵坐标 / 上边界 Top
Me.Hide
hDCtmp = GetDC(0)
Picture1.BorderStyle = 0
Picture1.AutoRedraw = True
Picture1.Width = w * Screen.TwipsPerPixelX
Picture1.Height = h * Screen.TwipsPerPixelY
Call BitBlt(Picture1.hdc, 0, 0, w, h, hDCtmp, X, Y, vbSrcCopy)
ReleaseDC 0, hDCtmp
SavePicture Picture1.Image, "c:\1.bmp"
Me.Show
End Sub
Private Declare Function ReleaseDC _
Lib "user32" (ByVal hwnd As Long, _
ByVal hdc 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 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
'首先,在窗体上添加个图片框PictureBox控件Name为Picture1
'截取指定位置指定大小的区域,保存到c:\1.bmp文件
Private Sub Form_Load()
Dim hDCtmp As Long
Dim w, h, X, Y
w = 300 ' 要截取屏幕部分的宽度
h = 300 ' 要截取屏幕部分的高度
X = 300 ' 横坐标 / 左边界 Left
Y = 300 ' 纵坐标 / 上边界 Top
Me.Hide
hDCtmp = GetDC(0)
Picture1.BorderStyle = 0
Picture1.AutoRedraw = True
Picture1.Width = w * Screen.TwipsPerPixelX
Picture1.Height = h * Screen.TwipsPerPixelY
Call BitBlt(Picture1.hdc, 0, 0, w, h, hDCtmp, X, Y, vbSrcCopy)
ReleaseDC 0, hDCtmp
SavePicture Picture1.Image, "c:\1.bmp"
Me.Show
End Sub
展开全部
下面是仿QQ截图的源码,请下载后稍加修改即可:
http://files.7lx.com/data/2010-04/2010april14th144024_qqcut.rar
http://files.7lx.com/data/2010-04/2010april14th144024_qqcut.rar
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询