2017-12-04 14 views
2

私はMFCプロジェクトを持っています。それは40以上の言語をサポートしています。メニューがクロップされました

私のPCには2台のモニターがあります。彼らは、サイズモニターと解像度の違いがあります。

小さなモニターにアプリケーションを移動すると、完全な言語メニューが表示されません。私はそれがスクロールバーを表示することを理解した。それはなぜですか?

マイメニューは標準メニューです。何もない。

メインモニタの解像度が高く、フルメニューが表示されます。

お知らせください。

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

+1


私はあなたのプログラムが "意識DPI" とは対照的に、 "モニタ解像度ごとの対応" であると仮定も参照してください? –

+0

正直な答えは分かりません。それをどうやって調べるのですか? –

答えて

3

DPI認識を設定する方法はいくつかあります。この値をどのように設定したかによって異なります。

クリック"Project Properties" - >"Manifest Tools" - >"DPI Awareness"

それは、問題を説明することができ、あなたのケースで"High DPI Aware"を、言うかもしれません。 "Per Monitor High DPI Aware"

enter image description here


にそれを変更するか、あなたは、マニフェストファイルでこの値を設定することができ、dpiAwareセクションでは、このマニフェストファイル内の値は、 "True/PM"の代わり "True"でなければなりません。マニフェストファイルの名前は "myapp.exe.manifest"で、リソースディレクトリに置く必要があります。

<dpiAware>True/PM</dpiAware> 

この場合、値は"True"であり、問​​題が説明されている可能性があります。


または SetProcessDpiAwarenessを使用している可能性があります。その場合は、値 PROCESS_PER_MONITOR_DPI_AWAREを使用する必要があります。

SetProcessDPIAwareを使用している可能性もあります。この関数は非推奨です。

Creating a DPI-Aware Application
High DPI Reference

+0

ありがとうございました。私の設定は** High DPI Aware **に設定されていました。私はそれをもう一方の設定に調整し、メニューは両方のモニターに正しく表示されます。ありがとうございました。 :) –

関連する問題