DOBON.NETプログラミング道掲示板

■35282 / 8階層)  RichTextBoxのテキストをpictureBOXへ
□投稿者/ KOZ 一般人(12回)-(2022/12/15(Thu) 18:00:28)
  • アイコン
    No35280に返信(ま〜さんの記事)
    > こんにちは、体調を崩して回答が遅れました。すみません。
    
    お大事に。
    
    > ですがTabPage環境化ではズレました。
    > Parentをと思って色々やってみましたが中々上手くいかずTabPage下の座標知る方法はないのでしょうか?
    
    むむむ、やっかいですね高DPI。
    スクリーン座標を取るのが目的でないなら、以下のコードでキャプチャはできると思います。
    
    Imports System.Runtime.InteropServices
    
    Public Class Form1
    
        Public Sub New()
            InitializeComponent()
            PictureBox1.SizeMode = PictureBoxSizeMode.Zoom
            PictureBox1.Size = RichTextBox1.Size
        End Sub
    
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Dim bmp = CreateBitmapFromControl(RichTextBox1)
            If PictureBox1.Image IsNot Nothing Then
                PictureBox1.Image.Dispose()
            End If
            PictureBox1.Image = bmp
        End Sub
    
        Private Const SRCCOPY As Integer = &HCC0020
    
        <DllImport("User32.dll")>
        Private Shared Function GetWindowDC(hWnd As IntPtr) As IntPtr
        End Function
    
        <DllImport("user32.dll")>
        Private Shared Function ReleaseDC(hWnd As IntPtr, hDC As IntPtr) As Boolean
        End Function
    
        <DllImport("gdi32.dll")>
        Private Shared Function BitBlt(hdcDest As IntPtr,
                                       nXDest As Integer, nYDest As Integer,
                                       nWidth As Integer, nHeight As Integer,
                                       hdcSrc As IntPtr,
                                       nXSrc As Integer, nYSrc As Integer,
                                       dwRop As Integer) As Boolean
        End Function
    
        Private Shared Function CreateBitmapFromControl(con As Control) As Bitmap
            Dim cs = con.Size
            Dim bmp As New Bitmap(cs.Width, cs.Height)
            Using g = Graphics.FromImage(bmp)
                Dim hdcDest = g.GetHdc()
                Dim hdcSrc = GetWindowDC(con.Handle)
                BitBlt(hdcDest, 0, 0, cs.Width, cs.Height, hdcSrc, 0, 0, SRCCOPY)
                ReleaseDC(con.Handle, hdcSrc)
                g.ReleaseHdc()
            End Using
            Return bmp
        End Function
    
    End Class
    

違反を報告
削除キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←Re[7]: RichTextBoxのテキストをpictureBOXへ /ま〜 →Re[9]: RichTextBoxのテキストをpictureBOXへ /ま〜
 
上記関連ツリー

Nomalアイコン RichTextBoxのテキストをpictureBOXへ / ま〜 (22/12/05(Mon) 15:45) #35270
Nomalアイコン Re[1]: RichTextBoxのテキストをpictureBOXへ / KOZ (22/12/06(Tue) 00:29) #35271
  └Nomalアイコン Re[2]: RichTextBoxのテキストをpictureBOXへ / ま〜 (22/12/06(Tue) 12:52) #35272
    └Nomalアイコン Re[3]: RichTextBoxのテキストをpictureBOXへ / KOZ (22/12/06(Tue) 16:20) #35273
      └Nomalアイコン Re[4]: RichTextBoxのテキストをpictureBOXへ / 魔界の仮面弁士 (22/12/06(Tue) 16:51) #35274
        └Nomalアイコン Re[5]: RichTextBoxのテキストをpictureBOXへ / ま〜 (22/12/08(Thu) 14:56) #35275
          ├Nomalアイコン Re[6]: RichTextBoxのテキストをpictureBOXへ / 魔界の仮面弁士 (22/12/08(Thu) 15:22) #35276
          │└Nomalアイコン Re[7]: RichTextBoxのテキストをpictureBOXへ / 魔界の仮面弁士 (22/12/08(Thu) 15:25) #35277
          └Nomalアイコン Re[6]: RichTextBoxのテキストをpictureBOXへ / KOZ (22/12/08(Thu) 18:38) #35279
            └Nomalアイコン Re[7]: RichTextBoxのテキストをpictureBOXへ / ま〜 (22/12/15(Thu) 13:11) #35280
              └Nomalアイコン RichTextBoxのテキストをpictureBOXへ / KOZ (22/12/15(Thu) 18:00) #35282 ←Now
                └Nomalアイコン Re[9]: RichTextBoxのテキストをpictureBOXへ / ま〜 (22/12/19(Mon) 13:37) #35295
                  └Nomalアイコン Re[10]: RichTextBoxのテキストをpictureBOXへ / ま〜 (22/12/19(Mon) 13:45) #35296 解決み!

All 上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信

Mode/  Pass/


- Child Tree -