locked
Printscreen of picturebox-region RRS feed

  • คำถาม

  • Hello there. I wonder if it's possible to take a print-screen of a certain part of the screen. The region of a picturebox and everything over it.
    If I was a little short there, be sure to ask.

    (As I said in a previous thread, I have 6-8 months of experience.)

    - Regards, Martin
    21 ธันวาคม 2551 11:25

คำตอบ

  • If you have controls over picturebox, try this way,

    Public Class Form1 
        Private Declare Auto Function BitBlt Lib "gdi32.dll" (ByVal _ 
        hdcDest As IntPtr, ByVal nXDest As IntegerByVal _ 
        nYDest As IntegerByVal nWidth As IntegerByVal _ 
        nHeight As IntegerByVal hdcSrc As IntPtr, ByVal nXSrc _ 
        As IntegerByVal nYSrc As IntegerByVal dwRop As  _ 
        System.Int32) As Boolean 
        Private Const COPY As Integer = &HCC0020 
     
        Private Sub btnSave_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles btnSave.Click 
            Dim GR As Graphics = PictureBox1.CreateGraphics 
            Dim bm As New Bitmap(PictureBox1.Width, PictureBox1.Height) 
            Dim pbhdc As IntPtr = GR.GetHdc 
            Dim bitmapgr As Graphics = Graphics.FromImage(bm) 
            Dim bitmaphdc As IntPtr = bitmapgr.GetHdc 
            BitBlt(bitmaphdc, 0, 0, Me.ClientSize.Width, Me.ClientSize.Height, pbhdc, 0, 0, COPY) 
            GR.ReleaseHdc(pbhdc) 
            bitmapgr.ReleaseHdc(bitmaphdc) 
            bm.Save("c:\backup\test.jpg", Drawing.Imaging.ImageFormat.Jpeg) 
        End Sub 


    Arjun Paudel
    • ทำเครื่องหมายเป็นคำตอบโดย Martin_H 22 ธันวาคม 2551 17:51
    • ทำเครื่องหมายเป็นคำตอบโดย Caddre 23 ธันวาคม 2551 17:07
    21 ธันวาคม 2551 13:03

ตอบทั้งหมด

  • Martin_H said:

    Hello there. I wonder if it's possible to take a print-screen of a certain part of the screen. The region of a picturebox and everything over it.
    If I was a little short there, be sure to ask.

    (As I said in a previous thread, I have 6-8 months of experience.)

    - Regards, Martin


    Not sure what you mean,but you said region of a picturebox and everything over it, does that mean you have others controls over picture box? Saving image of a picture box is easy like
    PictureBox1.Image.Save(filename)




    Arjun Paudel
    21 ธันวาคม 2551 12:35
  • If you have controls over picturebox, try this way,

    Public Class Form1 
        Private Declare Auto Function BitBlt Lib "gdi32.dll" (ByVal _ 
        hdcDest As IntPtr, ByVal nXDest As IntegerByVal _ 
        nYDest As IntegerByVal nWidth As IntegerByVal _ 
        nHeight As IntegerByVal hdcSrc As IntPtr, ByVal nXSrc _ 
        As IntegerByVal nYSrc As IntegerByVal dwRop As  _ 
        System.Int32) As Boolean 
        Private Const COPY As Integer = &HCC0020 
     
        Private Sub btnSave_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles btnSave.Click 
            Dim GR As Graphics = PictureBox1.CreateGraphics 
            Dim bm As New Bitmap(PictureBox1.Width, PictureBox1.Height) 
            Dim pbhdc As IntPtr = GR.GetHdc 
            Dim bitmapgr As Graphics = Graphics.FromImage(bm) 
            Dim bitmaphdc As IntPtr = bitmapgr.GetHdc 
            BitBlt(bitmaphdc, 0, 0, Me.ClientSize.Width, Me.ClientSize.Height, pbhdc, 0, 0, COPY) 
            GR.ReleaseHdc(pbhdc) 
            bitmapgr.ReleaseHdc(bitmaphdc) 
            bm.Save("c:\backup\test.jpg", Drawing.Imaging.ImageFormat.Jpeg) 
        End Sub 


    Arjun Paudel
    • ทำเครื่องหมายเป็นคำตอบโดย Martin_H 22 ธันวาคม 2551 17:51
    • ทำเครื่องหมายเป็นคำตอบโดย Caddre 23 ธันวาคม 2551 17:07
    21 ธันวาคม 2551 13:03
  • Ah, thank you very much. This solved all my problems. Again thanks, and merry Christmas!
    22 ธันวาคม 2551 17:51