0

画面サイズが 600 ではなく 611 と報告される理由を誰かが知っている可能性が低いので、ここに投稿しています。

GetSystemMetrics(SM_CYFULLSCREEN)

611 を返します。私のネットブックは 1024x600 なので、611 ではなく 600 を期待していました。

1024x611 でググっても、驚くほど多くの結果が得られます。

4

2 に答える 2

1

SM_CXFULLSCREEN と SM_CYFULLSCREENはフル スクリーン ウィンドウのサイズを返すため、通常はタスクバーが原因で画面サイズよりも小さくなります。

プライマリ ディスプレイ モニターのフルスクリーン ウィンドウのクライアント領域の幅 (ピクセル単位)。システム タスクバーまたはアプリケーション デスクトップ ツールバーによって隠されていない画面の部分の座標を取得するには、SPI_GETWORKAREA 値を指定して SystemParametersInfo 関数を呼び出します。

SystemParametersInfo の SPI_GETWORKAREA がディスプレイに返すものと比較してください。または、コントロール パネルでディスプレイが何に設定されていますか??

1024x640 の画面は真の 16:10 の比率であり、利用可能なデスクトップ サイズは ~ 611 になります。

于 2012-10-07T07:57:00.193 に答える
1

他のフォーラム スレッドから、GetSystemMetrics(SM_CYFULLSCREEN)常に期待される結果が返されるとは限らないようです。調整されているようで、希望する値ではない可能性があります。

を使用してみてGetSystemMetrics(SM_CYSCREEN)ください。プライマリ モニターのサイズが返されます。

(また、複数のモニターを使用する人もいることに注意してください。アプリケーションを単一のモニターに制限しないように注意してください)

于 2012-10-07T07:58:55.683 に答える