獲取系統解析度

2021-06-02 07:17:37 字數 2324 閱讀 4185

procedure tform1.button1click(sender: tobject);

begin

label1.caption:='screen width:'+ inttostr(screen.width) ;

label2.caption:='screen height:'+ inttostr(screen.height);

end;

這樣就可以得到了!

以下是其它的方法:

clientw:=getsystemmetrics(sm_cxscreen);

clientw:=getresolution(true);            

**********===《windows 程式設計 第五版》讀書筆記 ||  第四章 輸出文字 **********===

可以用getsystemmetrics函式可以獲取系統解析度,但這只是其功能之一,getsystemmetrics函式只有乙個引數,稱之為「索引」,這個索引有75個識別符號,通過設定不同的識別符號就可以獲取系統解析度、窗體顯示區域的寬度和高度、滾動條的寬度和高度。

為了使使getsystemmetrics的功能,我們以獲取系統解析度為例,並將其中的兩個值用textout輸出到窗體中。

第一步:用getsystemmetrics獲取螢幕的寬度和高度

int x, y;

x = getsystemmetrics(sm_cxscreen); //螢幕寬度

y = getsystemmetrics(sm_cyscreen); //螢幕高度

第二步:用textout輸出解析度

因為x和y的值是int型別,所以無法用textout直接輸出,需要借助wsprintf函式,在c中,可以用printf函式直接將字串輸出到螢幕上,但wsprintf是將字串輸出到乙個char字元陣列中,而且wsprintf會返回輸出字串的長度。

tchar szbuffer[10];

int x = 1024;

int y = 768;

int ilength;

以上這段**,是用wsprintf將x的值存入szbuffer中,然後在ilength中存放x的長度。這一步實際上解決了兩個問題,將int型別的螢幕寬度轉為了tchar型別,textout函式可以直接輸出tchar型別字串,而且獲取了字串的長度,那麼我們就可以用textout函式在窗體中輸出螢幕的寬度:

textout(hdc, 0, 0, szbuffer, ilength);

本文的重點是getsystemmetrics函式,該函式的75個索引識別符號我沒乙個乙個的試,反正只要知道這個函式的作用就行了。在本文中wsprintf函式是解決int轉string的問題,本來想直接在textout中使用inttostr函式來輸出int型別的值,但沒弄清inttostr函式在哪個標頭檔案中,總用不上。inttostr函式我以前用過,在c++中應該有這個函式的。

獲取窗體顯示區域大小

已我現在的了解,獲取窗體顯示區域大小有三種方法。

第一種方法:使用getsystemmetrics函式

getsystemmetrics(sm_cxfullscreen); //獲取最大化窗體的顯示區域寬度

getsystemmetrics(sm_cyfullscreen); //獲取最大化窗體的顯示區域高度

第二種方法:使用getclientrect函式

該函式的原型如下:

bool getclientrect(

hwnd hwnd,      // handle to window

lprect lprect   // client coordinates

);書上沒介紹該函式的使用方法,看msdn的示例**,經過測試,其使用方法如下:

rect rect;

hdc = beginpaint (hwnd, &ps) ;

getclientrect(hwnd, &rect);

x = rect.right;

y = rect.bottom;

settextalign(hdc, ta_right | ta_top);

textout(hdc, 100, 0, szbuffer, wsprintf(szbuffer,text("%5d"), x));

textout(hdc, 100, cychar,szbuffer, wsprintf(szbuffer, text("%5d"), y));

endpaint (hwnd, &ps) ;

第三種方法:loword和hiword巨集

case wm_size:

x = loword(lparam);

y = hiword(lparam);

獲取手機螢幕解析度

獲取手機螢幕解析度的類 displaymetrics dm new displaymetrics getwindowmanager getdefaultdisplay getmetrics dm 獲得手機的寬頻和高度畫素單位為px string str 手機螢幕解析度為 dm.widthpixels...

IOS獲取螢幕解析度

from 獲取螢幕解析度是個很有用的功能,尤其在一些遊戲相關的開發中,圖形的繪製與螢幕解析度密不可分。得到當前螢幕的解析度是必不可少的支援。獲取螢幕解析度可以兩步走 1 得到當前螢幕的尺寸 cgrect rect screen uiscreen mainscreen bounds cgsize si...

IOS獲取螢幕解析度

原文連線 獲取螢幕解析度是個很有用的功能,尤其在一些遊戲相關的開發中,圖形的繪製與螢幕解析度密不可分。得到當前螢幕的解析度是必不可少的支援。獲取螢幕解析度可以兩步走 1 得到當前螢幕的尺寸 cgrect rect screen uiscreenmainscreen bounds cgsize siz...