我們在做專案的時候,往往會有想要獲取螢幕的解析度的需求。現在我們就來總結一下如何獲取螢幕解析度,不管是單屏還是多屏。
1、rect deskrect;
getwindowrect(getdesktopwindow(),&deskrect);
該函式只能獲取主屏的解析度,也就是說如果有多個顯示器的話,這個函式只能獲取主屏解析度。
而且該函式獲得的結果會受螢幕縮放影響,比如原分變率為1920*1080,且在顯示設定裡設定了125%的縮放的話,得到的結果為1536*864。如果縮放為100%的話,結果為1920*1080.
2、 hdc hdc = getdc(null);
int hdcwidth, hdcheight;
hdcwidth = getdevicecaps(hdc, desktophorzres);
hdcheight = getdevicecaps(hdc, desktopvertres);
releasedc(null, hdc);
該方法也是只能獲取主屏解析度,與第一種方法一樣,所不同的是它是無視縮放的。即不管你縮放是100%還是125%還是多少,得到的結果都是1920*1080
3、 int allx = getsystemmetrics(sm_cxscreen);
int ally = getsystemmetrics(sm_cyscreen);
該方法也是只能獲取主屏解析度,與第一種方法得到的結果一模一樣,受縮放影響。
4、 struct allmonitorinfo
hmonitor hmonitor;
rect rect;
bool isprimary;
bool callback monitorenumproc(__in hmonitor hmonitor, __in hdc hdcmonitor, __in lprect lprcmonitor, __in lparam dwdata)
vector& infoarray = *reinterpret_cast* >(dwdata);
allmonitorinfo monitorinfo;
monitorinfo.hmonitor = hmonitor;
//下面這句**已經獲取到了螢幕的解析度,不管你有多少個螢幕都可以獲取到,但是該解析度是受縮放影響的。
monitorinfo.rect = *lprcmonitor;
infoarray.push_back(monitorinfo);
//這裡是另一種獲取螢幕解析度的辦法。
monitorinfo moninfo;
moninfo.cbsize = sizeof(monitorinfo);
//這個方法也是會受縮放影響,****.
bool isget = getmonitorinfo(hmonitor, &moninfo);
if (isget == true)
float itemp = iphsx * iphsx + iphsy * iphsy;
float finch = sqrt(itemp) * inch ;
itemp = ix * ix + iy * iy;
float fpixel = sqrt(itemp);
float idpi = fpixel / finch; // dpi pixel/inch
cout<<"dpi:" }int _tmain(int argc, _tchar* ar**) 我們在做專案的時候,往往會有想要獲取螢幕的解析度的需求。現在我們就來總結一下如何獲取螢幕解析度,不管是單屏還是多屏。rect deskrect getwindowrect getdesktopwindow deskrect 該函式只能獲取主屏的解析度,也就是說如果有多個顯示器的話,這個函式只能獲取主... 獲取手機螢幕解析度的類 displaymetrics dm new displaymetrics getwindowmanager getdefaultdisplay getmetrics dm 獲得手機的寬頻和高度畫素單位為px string str 手機螢幕解析度為 dm.widthpixels... from 獲取螢幕解析度是個很有用的功能,尤其在一些遊戲相關的開發中,圖形的繪製與螢幕解析度密不可分。得到當前螢幕的解析度是必不可少的支援。獲取螢幕解析度可以兩步走 1 得到當前螢幕的尺寸 cgrect rect screen uiscreen mainscreen bounds cgsize si...獲取螢幕的解析度 多螢幕或者單螢幕
獲取手機螢幕解析度
IOS獲取螢幕解析度