Beispiel #1
0
 public void Dispose()
 {
     if (hd.Handle == IntPtr.Zero || gd == null)
     {
         return;
     }
     GdiProxy.SelectObject(hs, hOldObj);
     GdiProxy.DeleteObject(hb);
     //gd.ReleaseHdc();
     gs.ReleaseHdc();
     gs.Dispose();
     gd = gs = null;
     b  = null;
 }
Beispiel #2
0
 public void Assign(Graphics gfx, Rectangle rect, Bitmap bmp)
 {
     Dispose();
     gd = gfx;
     b  = bmp;
     r  = rect;
     gs = Graphics.FromImage(bmp);
     hs = new HandleRef(gs, gs.GetHdc());
     //hd = new HandleRef(gd, gd.GetHdc());
     hb      = new HandleRef(bmp, bmp.GetHbitmap());
     hOldObj = new HandleRef(gs, GdiProxy.SelectObject(hs, hb));
     if (hOldObj.Handle == IntPtr.Zero)
     {
         throw new Win32Exception();
     }
 }