Ejemplo n.º 1
0
        public static ICONMETRICS GetWindowsIconMetrics()
        {
            var _ncm = new ICONMETRICS();

            if (SystemParametersInfo(SPI_GETICONMETRICS, _ncm.cbSize, _ncm, 0))
            {
                return(_ncm);
            }
            return(null);
        }
        private static Settings SetValues(NONCLIENTMETRICS metrics, ICONMETRICS iconmetrics)
        {
            var settings = new Settings();

            settings.CaptionFontSize       = metrics.lfCaptionFont.lfHeight;
            settings.SecondarytitlebarSize = metrics.lfSmCaptionFont.lfHeight;
            settings.MenuSize        = metrics.lfMenuFont.lfHeight;
            settings.MessageBoxSize  = metrics.lfMessageFont.lfHeight;
            settings.StatusbarSize   = metrics.lfStatusFont.lfHeight;
            settings.BorderSize      = metrics.iBorderWidth;
            settings.IconCaptionSize = iconmetrics.lfFont.lfHeight;

            return(settings);
        }
Ejemplo n.º 3
0
        public Program(string[] args)
        {
            /*
             * // value sets, nothing seems to happen??
             * Int32 ncm = new Int32();
             *
             * int size = Marshal.SizeOf(typeof(Int32));
             * IntPtr pncmetrics = Marshal.AllocHGlobal(size);
             * Marshal.StructureToPtr(ncm, pncmetrics, true);
             * bool b = SystemParametersInfo(SPI_ICONVERTICALSPACING, size, pncmetrics, 0);
             * //Marshal.PtrToStructure(pncmetrics, ncm);
             * ncm = Marshal.ReadInt32(pncmetrics);
             * Marshal.FreeHGlobal(pncmetrics);
             *
             * b = SystemParametersInfo(SPI_ICONVERTICALSPACING, 94, IntPtr.Zero, 0);
             *
             * Console.WriteLine(ncm);
             *
             * SetVisualStyle();
             */

            try
            {
                if (args.Length == 0)
                {
                    Console.WriteLine(new AllMetrics {
                        NCMetrics = this.NCMetrics, IconMetrics = this.IconMetrics
                    }.ToXml().Remove(0, 1));
                }
                else
                {
                    var am = File.ReadAllText(args[0]).FromXML <AllMetrics>();

                    IconMetrics = am.IconMetrics;
                    NCMetrics   = am.NCMetrics;

                    if (args.Length == 2)
                    {
                        SetVisualStyle();
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error: " + ex.Message);
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// ListViewの大きいアイコンの情報を取得します。
        /// </summary>
        /// <returns>ListViewの大きいアイコンの情報を表すListViewIconMetrics。</returns>
        public static ListViewIconMetrics GetListViewIconMetrics()
        {
            var metrics = new ICONMETRICS(0);

            metrics.cbSize = Marshal.SizeOf(metrics);

            var ret       = SystemParametersInfo(WinControlUtility.SPI_GETICONMETRICS, Marshal.SizeOf(metrics), ref metrics, 0);
            var retMetric = new ListViewIconMetrics {
                IsApiSuccessful = ret
            };

            if (ret)
            {
                retMetric.HorizontalSpacing = metrics.iHorzSpacing;
                retMetric.VerticalSpacing   = metrics.iVertSpacing;
            }

            return(retMetric);
        }
Ejemplo n.º 5
0
 private static extern bool SystemParametersInfo(long uAction, int lpvParam, ref ICONMETRICS uParam, int fuWinIni);
Ejemplo n.º 6
0
 public static void SetWindowsIconMetrics(ICONMETRICS metrics)
 {
     SystemParametersInfo(SPI_SETICONMETRICS, 0, metrics, 3);
 }
Ejemplo n.º 7
0
 public static extern bool SystemParametersInfo(int uiAction, int uiParam, [In, Out] ICONMETRICS pvParam, int fWinIni);