问题描述
我正在获取仪表曲线,默认是隐藏的,但曲线一直在绘制。每个一段时间自动要保存成效果图。我用句柄获取隐藏窗口代码如下:IntPtrhscrdc=GetWindowDC(hWnd);//Controlcontrol=Control.FromHandle(hWnd);Windowxx=(Window)System.Windows.Interop.HwndSource.FromHwnd(hWnd).RootVisual;IntPtrhbitmap=CreateCompatibleBitmap(hscrdc,Convert.ToInt32(xx.Width),Convert.ToInt32(xx.Height));//IntPtrhbitmap=CreateCompatibleBitmap(hscrdc,width,height);IntPtrhmemdc=CreateCompatibleDC(hscrdc);SelectObject(hmemdc,hbitmap);PrintWindow(hWnd,hmemdc,0);Bitmapbmp=Bitmap.FromHbitmap(hbitmap);DeleteDC(hscrdc);//删除用过的对象DeleteDC(hmemdc);//删除用过的对象returnbmp;以上是图片保存代码IntPtrhbitmap=CreateCompatibleBitmap(hscrdc,Convert.ToInt32(xx.Width),Convert.ToInt32(xx.Height));运行这个的时候提示hscrdc被占用。调用线程无法访问此对象,因为另一个线程拥有该对象。求助。如何更好截取保存图片就剩下这么多分,全用上。多谢
解决方案
解决方案二:
this.Dispatcher.Invoke