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); }
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); } }
/// <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); }
private static extern bool SystemParametersInfo(long uAction, int lpvParam, ref ICONMETRICS uParam, int fuWinIni);
public static void SetWindowsIconMetrics(ICONMETRICS metrics) { SystemParametersInfo(SPI_SETICONMETRICS, 0, metrics, 3); }
public static extern bool SystemParametersInfo(int uiAction, int uiParam, [In, Out] ICONMETRICS pvParam, int fWinIni);