3

デバイスが取りうるさまざまな向きを考慮する必要があります。別名、横向き、横向き反転、縦向き、または縦向き反転です。私のアプリはネイティブ C++ で作成されており、デスクトップ アプリとして Windows 8.1 で実行されています (クロス プラットフォームは決して要件ではありません)。

Microsoft が概説している方法を使用して、デバイスが縦向きか横向きかを判断できることを知っています: http://msdn.microsoft.com/en-us/library/ms812142.aspx

ただし、横向きと横向きの反転 (または縦向きと縦向きの反転) を区別する方法はありません。

DisplayInformation.CurrentOrientationプロパティをチェックすることで必要なものを正確に取得できまし たが、これは WinRT API です。つまり、これを使用したい場合、アプリで CLR を使用する必要がありますが、これはスターターではありません。

また、アプリを単一の実行可能ファイルとして保持したいのですが、それを実行して同時にマネージ API を呼び出すクリーンな方法はないと思います。しかし、繰り返しになりますが、私はネイティブ コードとマネージ コードの統合について非常に経験がありません。

では、Windows でネイティブ コードのみを使用してディスプレイの向きを把握する方法を知っている人はいますか?

4

3 に答える 3

3

私はこれを理解しました。実際、思ったよりずっと簡単です。EnumDisplaySettings() は DEVMODE 構造体の dmDisplayOrientation フィールドにデータを入力しませんが、EnumDisplaySettingsEx() はデータを入力ます。だから、実際には本当に簡単です:)

ここに良い例があります。

于 2013-11-13T22:33:56.290 に答える