借用一段代码说明,其它调用一样,具体的可以参考.Net Framework中的说明using System; using System.Drawing; using System.Runtime.InteropServices;public class Win32 { [DllImport("USER32.DLL", EntryPoint= "SendMessage")] public static extern int SendMessage(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam); public static bool CaptureWindow(System.Windows.Forms.Control control, ref System.Drawing.Bitmap bitmap) { Graphics g2 = Graphics.FromImage(bitmap); int meint = (int)(PRF_CLIENT | PRF_ERASEBKGND); System.IntPtr meptr = new System.IntPtr(meint); System.IntPtr hdc = g2.GetHdc(); win32.SendMessage(control.Handle,win32.WM_PRINT,hdc,meptr); g2.ReleaseHdc(hdc); g2.Dispose(); return true; } }
using System.Runtime.InteropServices; //注意这个不能少啊!关键的地方是这里 [DllImport("USER32.DLL", EntryPoint= "SendMessage")] public static extern int SendMessage(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam);
using System.Drawing;
using System.Runtime.InteropServices;public class Win32
{
[DllImport("USER32.DLL", EntryPoint= "SendMessage")]
public static extern int SendMessage(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam); public static bool CaptureWindow(System.Windows.Forms.Control control, ref System.Drawing.Bitmap bitmap)
{
Graphics g2 = Graphics.FromImage(bitmap);
int meint = (int)(PRF_CLIENT | PRF_ERASEBKGND);
System.IntPtr meptr = new System.IntPtr(meint);
System.IntPtr hdc = g2.GetHdc();
win32.SendMessage(control.Handle,win32.WM_PRINT,hdc,meptr);
g2.ReleaseHdc(hdc);
g2.Dispose();
return true;
}
}
[DllImport("USER32.DLL", EntryPoint= "SendMessage")]
public static extern int SendMessage(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam);