獲取螢幕的解析度 多螢幕或者單螢幕

2021-10-23 12:42:00 字數 1061 閱讀 1367

我們在做專案的時候,往往會有想要獲取螢幕的解析度的需求。現在我們就來總結一下如何獲取螢幕解析度,不管是單屏還是多屏。

rect deskrect

getwindowrect(getdesktopwindow(),&deskrect)

該函式只能獲取主屏的解析度,也就是說如果有多個顯示器的話,這個函式只能獲取主屏解析度。

而且該函式獲得的結果會受螢幕縮放影響,比如原分變率為19201080,且在顯示設定裡設定了125%的縮放的話,得到的結果為1536864。如果縮放為100%的話,結果為1920*1080。

hdc hdc = getdc(null)

int hdcwidth, hdcheight

hdcwidth = getdevicecaps(hdc, desktophorzres)

hdcheight = getdevicecaps(hdc, desktopvertres)

releasedc(null, hdc)

該方法也是只能獲取主屏解析度,與第一種方法一樣,所不同的是它是無視縮放的。即不管你縮放是100%還是125%還是多少,得到的結果都是1920*1080。

int allx = getsystemmetrics(sm_cxscreen)

int ally = getsystemmetrics(sm_cyscreen)

該方法也是只能獲取主屏解析度,與第一種方法得到的結果一模一樣,受縮放影響

struct allmonitorinfo 

; bool callback monitorenumproc

(__in hmonitor hmonitor, __in hdc hdcmonitor, __in lprect lprcmonitor, __in lparam dwdata)

return true;

}int

main()

第四種方法裡面包括兩種方法,只是getmonitorinfo函式需要相應的顯示器控制代碼,所以我就放在了一起。

這些方法試下來,只有第四種方法能獲取到主屏外的其他螢幕解析度,但是都是受縮放影響的。

獲取螢幕的解析度 多螢幕或者單螢幕

我們在做專案的時候,往往會有想要獲取螢幕的解析度的需求。現在我們就來總結一下如何獲取螢幕解析度,不管是單屏還是多屏。1 rect deskrect getwindowrect getdesktopwindow deskrect 該函式只能獲取主屏的解析度,也就是說如果有多個顯示器的話,這個函式只能獲...

獲取手機螢幕解析度

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

IOS獲取螢幕解析度

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