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.
65 lines
2.2 KiB
65 lines
2.2 KiB
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); |
|
} |
|
} |
|
} |
|
} |
|
}
|
|
|