実行時にフォームにボタン1つを貼り付けてください。 '------------------------------------------------------------------------- Public Class Form1 <System.Runtime.InteropServices.DllImport("User32.dll")> Private Shared Function PrintWindow(ByVal hwnd As IntPtr, ByVal hDC As IntPtr, ByVal nFlags As Integer) As Boolean End Function
''' <summary> ''' コントロールのイメージを取得する ''' </summary> ''' <param name="ctrl">キャプチャするコントロール</param> ''' <returns>取得できたイメージ</returns> Public Function CaptureControl(ByVal ctrl As Control) As Bitmap Dim img As New Bitmap(ctrl.Width, ctrl.Height) Dim memg As Graphics = Graphics.FromImage(img) Dim dc As IntPtr = memg.GetHdc() PrintWindow(ctrl.Handle, dc, 0) memg.ReleaseHdc(dc) memg.Dispose() Return img End Function
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 'コントロールの外観を描画するBitmapの作成 Dim bmp As Bitmap = CaptureControl(Me) 'キャプチャする bmp.Save("C:\PrintWindow.bmp")
'後始末 bmp.Dispose() End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load 'フォームを最大化 Me.WindowState = FormWindowState.Maximized End Sub End Class
'------------------------------------------------------------------------------- Public Class Form1 <System.Runtime.InteropServices.DllImport("User32.dll")> Private Shared Function PrintWindow(ByVal hwnd As IntPtr, ByVal hDC As IntPtr, ByVal nFlags As Integer) As Boolean End Function
''' <summary> ''' コントロールのイメージを取得する ''' </summary> ''' <param name="ctrl">キャプチャするコントロール</param> ''' <returns>取得できたイメージ</returns> Public Function CaptureControl(ByVal ctrl As Control) As Bitmap Dim img As New Bitmap(ctrl.Width, ctrl.Height) Dim memg As Graphics = Graphics.FromImage(img) Dim dc As IntPtr = memg.GetHdc() PrintWindow(ctrl.Handle, dc, 0)
memg.ReleaseHdc(dc) memg.Dispose() Return img End Function
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 'コントロールの外観を描画するBitmapの作成 Dim bmp As Bitmap = CaptureControl(Me) 'キャプチャする bmp.Save("C:\PrintWindow.bmp", System.Drawing.Imaging.ImageFormat.Bmp) bmp.Save("C:\PrintWindow.emf", System.Drawing.Imaging.ImageFormat.Emf) bmp.Save("C:\PrintWindow.exit", System.Drawing.Imaging.ImageFormat.Exif) bmp.Save("C:\PrintWindow.gif", System.Drawing.Imaging.ImageFormat.Gif) bmp.Save("C:\PrintWindow.jpg", System.Drawing.Imaging.ImageFormat.Jpeg) bmp.Save("C:\PrintWindow.png", System.Drawing.Imaging.ImageFormat.Png) bmp.Save("C:\PrintWindow.tif", System.Drawing.Imaging.ImageFormat.Tiff) bmp.Save("C:\PrintWindow.wmf", System.Drawing.Imaging.ImageFormat.Wmf) bmp.Save("C:\PrintWindow.mbmp", System.Drawing.Imaging.ImageFormat.MemoryBmp)
'後始末 bmp.Dispose() End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load 'フォームを最大化 Me.WindowState = FormWindowState.Maximized Me.FormBorderStyle = FormBorderStyle.None 'フォームのボーダスタイルを無しに設定
Private Sub ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ToolStripMenuItem.Click '閉じる[×]ボタン If MsgBoxResult.Yes = MsgBox("終了しますか?", MsgBoxStyle.YesNo) Then Me.Close() Else End If End Sub
Private Sub ToolStripMenuItem4_Click(sender As Object, e As EventArgs) Handles ToolStripMenuItem4.Click '最大化[□]ボタン Me.WindowState = FormWindowState.Maximized '最大化 End Sub
Private Sub ToolStripMenuItem5_Click(sender As Object, e As EventArgs) Handles ToolStripMenuItem5.Click '最小化[_]ボタン Me.WindowState = FormWindowState.Minimized '最小化 End Sub End Class