예제 #1
0
        private static IntPtr CreateNewHDC(IntPtr outputHdc, Rectangle bounds, out IntPtr DIB)
        {
            IntPtr     compatHdc = NativeMethod.CreateCompatibleDC(outputHdc);
            BITMAPINFO info      = default(BITMAPINFO);

            info.bmiHeader               = new BITMAPINFOHEADER();
            info.bmiHeader.biSize        = (uint)Marshal.SizeOf(info);
            info.bmiHeader.biWidth       = bounds.Width;
            info.bmiHeader.biHeight      = -bounds.Height;
            info.bmiHeader.biPlanes      = 1;
            info.bmiHeader.biBitCount    = 32;
            info.bmiHeader.biCompression = 0;
            DIB = NativeMethod.CreateDIBSection(outputHdc, ref info, 0u, 0, IntPtr.Zero, 0u);
            NativeMethod.SelectObject(compatHdc, DIB);
            return(compatHdc);
        }