首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> Delphi

Delphi 調用 WinAPI:GetSystemMetrics 取得系統度量資訊完整表

     編輯:Delphi

螢幕解析度、邊框寬度、圖示大小、多螢幕資訊一網打盡

GetSystemMetrics 是查詢 Windows 視覺與互動度量的百寶箱,參數超過 80 個。本文提供完整常數表,並以「取得螢幕解析度」為入門範例,同時展示 VCL Screen 物件的對應屬性。

入門範例:螢幕解析度


var
  cx, cy: Integer;
begin
  // WinAPI 方式
  cx := GetSystemMetrics(SM_CXSCREEN);
  cy := GetSystemMetrics(SM_CYSCREEN);
  ShowMessageFmt('Width:%d; Height:%d', [cx, cy]);

  // VCL 方式 (內部同樣呼叫 GetSystemMetrics)
  cx := Screen.Width;
  cy := Screen.Height;
  ShowMessageFmt('Width:%d; Height:%d', [cx, cy]);
end;

常用常數分類速查

點擊展開完整常數表 (SM_CXSCREEN 至 SM_REMOTESESSION)

SM_CXSCREEN = 0;
SM_CYSCREEN = 1;
SM_CXVSCROLL = 2;
SM_CYHSCROLL = 3;
SM_CYCAPTION = 4;
SM_CXBORDER = 5;
SM_CYBORDER = 6;
SM_CXDLGFRAME = 7;
SM_CYDLGFRAME = 8;
SM_CYVTHUMB = 9;
SM_CXHTHUMB = 10;
SM_CXICON = 11;
SM_CYICON = 12;
SM_CXCURSOR = 13;
SM_CYCURSOR = 14;
SM_CYMENU = 15;
SM_CXFULLSCREEN = $10;
SM_CYFULLSCREEN = 17;
SM_CYKANJIWINDOW = 18;
SM_MOUSEPRESENT = 19;
SM_CYVSCROLL = 20;
SM_CXHSCROLL = 21;
SM_DEBUG = 22;
SM_SWAPBUTTON = 23;
SM_RESERVED1 = 24;
SM_RESERVED2 = 25;
SM_RESERVED3 = 26;
SM_RESERVED4 = 27;
SM_CXMIN = 28;
SM_CYMIN = 29;
SM_CXSIZE = 30;
SM_CYSIZE = 31;
SM_CXFRAME = $20;
SM_CYFRAME = 33;
SM_CXMINTRACK = 34;
SM_CYMINTRACK = 35;
SM_CXDOUBLECLK = 36;
SM_CYDOUBLECLK = 37;
SM_CXICONSPACING = 38;
SM_CYICONSPACING = 39;
SM_MENUDROPALIGNMENT = 40;
SM_PENWINDOWS = 41;
SM_DBCSENABLED = 42;
SM_CMOUSEBUTTONS = 43;
SM_SECURE = 44;
SM_CXEDGE = 45;
SM_CYEDGE = 46;
SM_CXMINSPACING = 47;
SM_CYMINSPACING = 48;
SM_CXSMICON = 49;
SM_CYSMICON = 50;
SM_CYSMCAPTION = 51;
SM_CXSMSIZE = 52;
SM_CYSMSIZE = 53;
SM_CXMENUSIZE = 54;
SM_CYMENUSIZE = 55;
SM_ARRANGE = 56;
SM_CXMINIMIZED = 57;
SM_CYMINIMIZED = 58;
SM_CXMAXTRACK = 59;
SM_CYMAXTRACK = 60;
SM_CXMAXIMIZED = 61;
SM_CYMAXIMIZED = 62;
SM_NETWORK = 63;
SM_CLEANBOOT = 67;
SM_CXDRAG = 68;
SM_CYDRAG = 69;
SM_SHOWSOUNDS = 70;
SM_CXMENUCHECK = 71;
SM_CYMENUCHECK = 72;
SM_SLOWMACHINE = 73;
SM_MIDEASTENABLED = 74;
SM_MOUSEWHEELPRESENT = 75;
SM_CMETRICS = 76;
SM_XVIRTUALSCREEN = 76;
SM_YVIRTUALSCREEN = 77;
SM_CXVIRTUALSCREEN = 78;
SM_CYVIRTUALSCREEN = 79;
SM_CMONITORS = 80;
SM_SAMEDISPLAYFORMAT = 81;
SM_IMMENABLED = 82;
SM_CXFOCUSBORDER = 83;
SM_CYFOCUSBORDER = 84;
SM_REMOTESESSION = $1000;

參數詳解圖表

善用虛擬螢幕相關常數 (SM_XVIRTUALSCREEN 等) 可正確處理多螢幕不同解析度的座標轉換。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved