2016-12-06 29 views
1

ウィンドウの解像度を1920x1080に設定しました。 私はC++のWindows APIプログラムを持っており、GetSystemMetrics機能を使用する必要があります。MFCとWindows APIの画面解像度を取得する際の違い

int x = GetSystemMetrics(SM_CXSCREEN);//retun x=1536 
int y = GetSystemMetrics(SM_CYSCREEN);//retun y=864 

ご覧のとおり、1920x1080とは異なる値が表示されます。 ただし、MFCヘッダー(afx.h)を使用し、プログラム設定でMFC dllsを使用すると、戻り値x、yはWindowsの画面解像度(1920x1080)と同じです。

なぜ2つの方法が同じではないのですか?

MFCを使用せずにプログラムで正しいWindows画面解像度を取得するにはどうすればよいですか?

答えて

6

Windowsで125%のスケーリングを実行している可能性はありますか? 1,25 * 1536 = 1920と1,25 * 864 = 1080?私はMFCがDPIを認識していないと仮定します。

また、アプリケーションをDPI対応としてマークする方法については、thisを参照してください。

+0

ありがとうございました。 –

関連する問題