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); | 
						|
                } | 
						|
            } | 
						|
        } | 
						|
    } | 
						|
}
 | 
						|
 |