ふらっとC♯, C#(初心者用) Part14
■ このスレッドは過去ログ倉庫に格納されています
0033デフォルトの名無しさん
2007/03/04(日) 18:19:32pictureBox1に画像を読み込みForm1にコピーして表示するプログラムです
以下1部省略したその部分です
class USER32 {}
class GDI32
{
public const int SRCCOPY = 0xcc0020;
[DllImport("gdi32.dll")]
public static extern bool BitBlt(IntPtr hdcDst, int xDst, int yDst, int width, int height, IntPtr hdcSrc, int xSrc, int ySrc, int rasterOp);
}
protected override void OnPaint(PaintEventArgs e)
{
pictureBox1.Image = Image.FromFile("C:/test.jpg");
Graphics grfx = e.Graphics;
Graphics g = Graphics.FromImage(pictureBox1.Image);
IntPtr dstHDC = grfx.GetHdc();
IntPtr srcHDC = g.GetHdc();
GDI32.BitBlt(dstHDC, 0, 0, 320, 240,srcHDC, 0, 0,GDI32.SRCCOPY);
grfx.ReleaseHdc(dstHDC);
g.ReleaseHdc(srcHDC);
pictureBox1.Visible = false;
}
BitBltがうまくいかず黒地だけのコピーになってしまいます
ためしにForm1からForm1へのBitBltやるとちゃんと機能していました
pictureBox1のアクセスが出来ていないようです(線などは描けます)
何か足りないのでしょうか?
■ このスレッドは過去ログ倉庫に格納されています