现在有一个函数:
private void Capture(){
Button btn=new Button();//生成一个按钮,但还没显示出来
...................
//需要获得按钮的图片
................... btn.Dispose();//释放按钮
}
现在不知道获得按钮图片应该怎么作,(按钮始终是不会显示出来的,在代码中只是生成了,在用完后就释放了,界面上永远不会出现该控件)我把这个叫做"内存截图";不知道有没有那位仁兄知道的,请指点哈`~`~
谢谢了`~`~`~
private void Capture(){
Button btn=new Button();//生成一个按钮,但还没显示出来
...................
//需要获得按钮的图片
................... btn.Dispose();//释放按钮
}
现在不知道获得按钮图片应该怎么作,(按钮始终是不会显示出来的,在代码中只是生成了,在用完后就释放了,界面上永远不会出现该控件)我把这个叫做"内存截图";不知道有没有那位仁兄知道的,请指点哈`~`~
谢谢了`~`~`~
项目是c#的,没办法`~`~`~继续请教`~`~
你的话使我想起了这样一个问题:
是不是如果我将该控件显示出来了,就可以获得该控件的图片了?我能不能private void Capture(){
Button btn=new Button();//生成一个按钮,但还没显示出来
btn.visiable=true;
this.controls.Add(btn);//让该控件显示出来
...................
//需要获得按钮的图片
...................btn.Dispose();//释放按钮
}是不是这样就可以生成该控件的图片 了?
Button btn=new Button();//生成一个按钮,但还没显示出来
btn.visiable=true;
this.controls.Add(btn);//让该控件显示出来
之后,加上
this.Refresh();
然后再去获取。
{
public Form1()
{
} private void Form1_Load(object sender, EventArgs e)
{
Control ctrl = new Button();
if (!ctrl.IsHandleCreated)
{
ctrl.CreateControl();
}
Bitmap drawSurface = new Bitmap(ctrl.Width, ctrl.Height); using (Graphics g = Graphics.FromImage(drawSurface))
{
IntPtr hDc = g.GetHdc();
SendMessage(ctrl.Handle, WM_PAINT, hDc, IntPtr.Zero);
g.ReleaseHdc(hDc);
}
this.BackgroundImage = drawSurface;
} public const int WM_PAINT = 0x00f; [System.Runtime.InteropServices.DllImport("user32.dll", CharSet = System.Runtime.InteropServices.CharSet.Auto)]
public static extern IntPtr SendMessage(IntPtr hWnd, int msg, IntPtr wParam, IntPtr lParam);
}
特别是 lalac(水月流影)
结贴`~`~1!1!