年度变更建库软件5.0版本
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

66 lines
2.2 KiB

4 months ago
using KGIS.Plugin.LayerProperty.Model;
using System;
using System.Drawing;
namespace KGIS.Plugin.LayerProperty.Utils
{
public class Win32Util
{
public static short COLORONCOLOR = 3;
public static short HORZSIZE = 4;
public static short VERTSIZE = 6;
public static short HORZRES = 8;
public static short VERTRES = 10;
public static short ASPECTX = 40;
public static short ASPECTY = 42;
public static short LOGPIXELSX = 88;
public static short LOGPIXELSY = 90;
public static int InnerDC = 0;
private static int hdcSrc = 0;
private static int tempBitmap = 0;
public static void InitBitmap(int w, int h)
{
Win32Util.hdcSrc = User32.GetWindowDC(User32.GetDesktopWindow());
Win32Util.InnerDC = GDI32.CreateCompatibleDC(Win32Util.hdcSrc);
Win32Util.tempBitmap = GDI32.CreateCompatibleBitmap(Win32Util.hdcSrc, w, h);
GDI32.SelectObject(Win32Util.InnerDC, Win32Util.tempBitmap);
}
public static Bitmap GetBitmap(int w, int h)
{
return new Bitmap(Image.FromHbitmap(new IntPtr(Win32Util.tempBitmap)), w, h);
}
public static void ReleaseDC()
{
User32.ReleaseDC(User32.GetDesktopWindow(), Win32Util.hdcSrc);
GDI32.DeleteDC(Win32Util.InnerDC);
GDI32.DeleteObject(Win32Util.tempBitmap);
}
public static void ClearDC(int hDc, Color backgroundColor, int xmin, int ymin, int xmax, int ymax)
{
int num = 0;
RECT rECT;
rECT.Left_Renamed = xmin;
rECT.Top = ymin;
rECT.Right_Renamed = xmax;
rECT.Bottom = ymax;
int crColor = ColorTranslator.ToOle(backgroundColor);
try
{
num = GDI32.CreateSolidBrush(crColor);
User32.FillRect(hDc, ref rECT, num);
}
catch (Exception value)
{
Console.Write(value);
}
finally
{
if (num != 0)
{
GDI32.DeleteObject(num);
}
}
}
}
}