vb 屏幕区域截图

来源:百度知道 编辑:UC知道 时间:2024/05/27 20:36:17
例如我要截下屏幕上728,292,766,305处的图并保存,怎样写代码
代码越短越好

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

Const Srccopy = &HCC0020

Private Sub Picture1_Click()
StretchBlt Picture1.hdc, 0, 0, 766 - 728, 305 - 292, GetDC(0), 728, 292, 766 - 728, 305 - 292,Srccopy
'自己写保存图片的过程吧~
End Sub

PictureBox的ScaleMode要设置为pixel.

你试试这个行不~

PS 这个问题我好像见过 ?_?

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,