zoukankan      html  css  js  c++  java
  • #region 自适应屏幕分辨率


            #region 自适应屏幕分辨率


            [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
            public struct DEVMODE
            {
                [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]
                public string dmDeviceName;
                public short dmSpecVersion;
                public short dmDriverVersion;
                public short dmSize;
                public short dmDriverExtra;
                public int dmFields;
                public short dmOrientation;
                public short dmPaperSize;
                public short dmPaperLength;
                public short dmPaperWidth;
                public short dmScale;
                public short dmCopies;
                public short dmDefaultSource;
                public short dmPrintQuality;
                public short dmColor;
                public short dmDuplex;
                public short dmYResolution;
                public short dmTTOption;
                public short dmCollate;
                [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]
                public string dmFormName;
                public short dmLogPixels;
                public int dmBitsPerPel;
                public int dmPelsWidth;
                public int dmPelsHeight;
                public int dmDisplayFlags;
                public int dmDisplayFrequency;
            }

            [DllImport("user32.dll", CharSet = CharSet.Auto)]
            static extern int ChangeDisplaySettings([In]ref DEVMODE lpDevMode, int dwFlags);

            [DllImport("user32.dll", CharSet = CharSet.Auto)]
            static extern bool EnumDisplaySettings(string lpszDeviceName, Int32 iModeNum, ref DEVMODE lpDevMode);

            public static void ChangeRes(int width, int height)
            {
                DEVMODE devM = new DEVMODE();
                devM.dmSize = (short)Marshal.SizeOf(typeof(DEVMODE));
                bool mybool;
                mybool = EnumDisplaySettings(null, 0, ref devM);
                devM.dmPelsHeight = height;
                devM.dmPelsWidth = width;
                devM.dmDisplayFrequency = 75;
                devM.dmBitsPerPel = 32;
                long result = ChangeDisplaySettings(ref devM, 0);
            }

            //客户端// 获取屏幕分辨率
            protected int OriginalScreenSizeWidth = Screen.PrimaryScreen.Bounds.Width;
            protected int OriginalScreenSizeHeight = Screen.PrimaryScreen.Bounds.Height;

            void frmMachineSpecific_FormClosing(object sender, FormClosingEventArgs e)
            {
                //退出时还原分辨率
                ChangeRes(OriginalScreenSizeWidth, OriginalScreenSizeHeight);
            }
            #endregion
  • 相关阅读:
    软件测试工具
    nat 转发
    修改Oracle 10g Express Edition的字符集
    java数字证书学习笔记
    【Java–XML】JDOM解析XML字符串(非XML文档)
    JAVA Web快速开发部署(Javarebel实现真正高效的tomcat热部署)
    热天稀饭配方
    javascript 使用正则实现replaceall功能
    设置eclipse中各类型文件的默认浏览器(如设置flex的.mxml的编辑器为MXML Editor)
    GAE中JDO数据清除
  • 原文地址:https://www.cnblogs.com/CharlesGrant/p/3650867.html
Copyright © 2011-2022 走看看