VB6で作ったプログラムをVB.NETで書き換えたいのですが、Form1からのイベントでForm2の画像をForm1にBitblt転送したいのです。 モジュールは、VB6からVB.NETへのウイザードで作成された、 Public Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Integer, ByVal X As Integer, ByVal Y As Integer, ByVal nWidth As Integer, ByVal nHeight As Integer, ByVal hSrcDC As Integer, ByVal xSrc As Integer, ByVal ySrc As Integer, ByVal dwRop As Integer) As Integer をそのまま使いました。 Form1の中でのBitblt転送なら Dim g1 As System.Drawing.Graphics = PictureBox1.CreateGraphics Dim g2 As System.Drawing.Graphics = PictureBox2.CreateGraphics BitBlt(g2.GetHdc.ToInt32, 0, 0, 50, 50, g1.GetHdc.ToInt32, 0, 0, &HCC0020) これでうまくいったのですが、Form2の画像をForm1に転送したいので Dim frmForm2 As New Form2 Dim imageFile As Image = frmForm2.PictureBox1.Image Dim newGraphics As Graphics = Graphics.FromImage(imageFile) Dim g1 As System.Drawing.Graphics = newGraphics Dim g2 As System.Drawing.Graphics = PictureBox2.CreateGraphics BitBlt(g2.GetHdc.ToInt32, 0, 0, 50, 50, g1.GetHdc.ToInt32, 0, 0, &HCC0020) と行いますと、画像が黒い画像が転送されて、うまくいきません。初心者ですので分かりやすくご指導のほど宜しくお願いいたします。
分類:[.NET]
Bitbltに関する過去レスは、いろいろ書かれているのですが、全部読ましていただいたのですが、力がなくて・・・難しくて分かりません
VB6で作ったプログラムをVB.NETで書き換えたいのですが、Form1からのイベントでForm2の画像をForm1にBitblt転送したいのです。
モジュールは、VB6からVB.NETへのウイザードで作成された、 Public Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Integer, ByVal X As Integer, ByVal Y As Integer, ByVal nWidth As Integer, ByVal nHeight As Integer, ByVal hSrcDC As Integer, ByVal xSrc As Integer, ByVal ySrc As Integer, ByVal dwRop As Integer) As Integer
をそのまま使いました。
Form1の中でのBitblt転送なら
Dim g1 As System.Drawing.Graphics = PictureBox1.CreateGraphics
Dim g2 As System.Drawing.Graphics = PictureBox2.CreateGraphics
BitBlt(g2.GetHdc.ToInt32, 0, 0, 50, 50, g1.GetHdc.ToInt32, 0, 0, &HCC0020)
これでうまくいったのですが、Form2の画像をForm1に転送したいので
Dim frmForm2 As New Form2
Dim imageFile As Image = frmForm2.PictureBox1.Image
Dim newGraphics As Graphics = Graphics.FromImage(imageFile)
Dim g1 As System.Drawing.Graphics = newGraphics
Dim g2 As System.Drawing.Graphics = PictureBox2.CreateGraphics
BitBlt(g2.GetHdc.ToInt32, 0, 0, 50, 50, g1.GetHdc.ToInt32, 0, 0, &HCC0020)
と行いますと、画像が黒い画像が転送されて、うまくいきません。初心者ですので分かりやすくご指導のほど宜しくお願いいたします。