Windows API獲取螢幕真實大小

2021-07-24 00:17:06 字數 589 閱讀 9645

在petzold的書中寫用getdevicecaps(hdc,logpixelsx)得到螢幕dpi(dot per inch)計算真實大小,但我實際操作了發現不對。在windows系統中,我得到logpixelsx為96,無論解析度怎麼調整都是96,也許是出於對文字顯示的考慮。

我發現使用getdevicecaps(hdc,horzsize)和getdevicecaps(hdc,vertsize)來獲取螢幕真實大小才是合理正確的,這兩個返回值都是公釐為單位。我在1366*768下得到的horzsize為320mm,我拿尺子量了確實是這麼多。又改為800*600,由於比例不同螢幕兩邊有黑邊,我又量了和獲取的232mm一致。

由此可以得到dpm的概念,即dot per milimeter,每公釐畫素,用畫素長度除以dpm即得到公釐長度。反之,用公釐長度乘以dpm即得到對應的畫素。

dpmx =getsystemmetrics(sm_cxscreen) / getdevicecaps(hdc, horzsize);

dpmy = getsystemmetrics(sm_cyscreen) / getdevicecaps(hdc, vertsize);

WindowsAPI獲取時間資訊

時間資訊 1.設定獲取系統時間 1 關鍵api和資料結構 systemtime資料結構 typedef struct systemtime systemtime,psystemtime,lpsystemtime api void winapi getlocaltime lpsystemtime lp...

Windows API 獲取系統路徑

但是這樣每次開發效率就比較低,所以還是整理下吧,加深下印象,至少後面可以在自己部落格裡就能輕鬆的找到了吧。直接上 吧。include stdafx.h include include include include define make pair id std pair id,t id void ...

利用Windows API實現螢幕取色器

一 效果圖 為了實現這個取色器,在網上查了很多關於取色器的資料,起先是通過winform怎麼製作,後來發現大多數資料都呼叫了windows api,但自己以前從來沒有用過這方面的,又從網上下了windows api 來看,經過多次實踐終於做出了現在這個效果,先感謝下網上那些提供資料的朋友。效果,如下...