首先效果如下:
这是我点了两下"重新获取"截得自己屏幕的结果.
程序需要两个按钮(btnSave;btnGet),一个PictureBox控件(Pic1)
下面是代码示例:
=============================CODE=========================================
Public Class frmScreen
Private Declare Function
CreateCompatibleDC Lib "GDI32" (ByVal hDC As Integer) As
Integer
Private
Declare Function CreateCompatibleBitmap Lib "GDI32" (ByVal hDC As
Integer, ByVal nWidth As Integer, ByVal nHeight As Integer) As
Integer
Private
Declare Function SelectObject Lib "GDI32" (ByVal hDC As Integer,
ByVal hObject As Integer) As Integer
Private
Declare Function BitBlt Lib "GDI32" (ByVal srchDC As Integer, ByVal
srcX As Integer, ByVal srcY As Integer, ByVal srcW As Integer,
ByVal srcH As Integer, ByVal desthDC As Integer, ByVal destX As
Integer, ByVal destY As Integer, ByVal op As Integer) As
Integer
Private
Declare Function DeleteDC Lib "GDI32" (ByVal hDC As Integer) As
Integer
Private
Declare Function DeleteObject Lib "GDI32" (ByVal hObj As Integer)
As Integer
Declare
Function GetDC Lib "user32" Alias "GetDC" (ByVal hwnd As Integer)
As Integer
Const
SRCCOPY As Integer = &HCC0020
'以上是需要的API函数,直接写上就行了
‘下面是保存图像
Private Sub btnSave_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles btnSave.Click
Try
Dim bmp As Bitmap = PicCut.Image
If Pic1.ShowDialog = DialogResult.OK Then
bmp.Save(SavePic.FileName)
MsgBox("保存图片成功!", 0, "提示")
End If
Catch ex As Exception
MessageBox.Show(ex.ToString)
End Try
End Sub
’以下是截取图像
Private Sub btnGet_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
btnGet.Click
Dim hDC, hMDC As Integer
Dim hBMP, hBMPOld As Integer
Dim sw, sh As Integer
hDC = GetDC(0)
hMDC = CreateCompatibleDC(hDC)
sw = Screen.PrimaryScreen.Bounds.Width
sh = Screen.PrimaryScreen.Bounds.Height
hBMP = CreateCompatibleBitmap(hDC, sw, sh)
hBMPOld = SelectObject(hMDC, hBMP)
BitBlt(hMDC, 0, 0, sw, sh, hDC, 0, 0, SRCCOPY)
hBMP = SelectObject(hMDC, hBMPOld)
Pic1.Image = Image.FromHbitmap(New
IntPtr(hBMP))
DeleteDC(hDC)
DeleteDC(hMDC)
DeleteObject(hBMP)
End
Sub
End Class
‘=================================CODE END==============================
截得是全屏图像,自己试试效果吧!