我曾经使用 BitBlt 将屏幕截图保存到图像文件(.Net Compact Framework V3.5、Windows Mobile 2003 及更高版本)。工作得很好。现在我想为表单绘制位图。我可以使用this.CreateGraphics().DrawImage(mybitmap, 0, 0)
,但我想知道它是否可以像以前一样与 BitBlt 一起使用并交换参数。所以我写道:
[DllImport("coredll.dll")]
public static extern int BitBlt(IntPtr hdcDest, int nXDest, int nYDest, int nWidth, int nHeight, IntPtr hdcSrc, int nXSrc, int nYSrc, uint dwRop);
(再往下:)
IntPtr hb = mybitmap.GetHbitmap();
BitBlt(this.Handle, 0, 0, mybitmap.Width, mybitmap.Height, hb, 0, 0, 0x00CC0020);
但表格保持纯白色。这是为什么?我犯的错误在哪里?感谢您的意见。干杯,大卫