2016-06-25 11 views
0

私はC++(MFCを使用)で書かれたWindowsアプリケーションを持っています - Visual Studio 6.0。Windowsアプリケーションでより大きなメニューフォントを作成するには?

ユーザは大きなモニタを持っているので、すべてのメニュー項目(メインアプリケーションメニューから)が大きくなることを望んでいます。アプリケーションは、ウィンドウ内の(クライアント)テキストを大きくして問題にならないようにします。それは単なるメニューです。

私はメニューをCMenuオブジェクトとして取得し、そこからHMENUハンドルを派生させることができます。私は特に所有者に変える必要はありません。そのような単純な変更をするだけです。

システムフォントのより大きなバージョンを使用するように、メニューの場合は、現在のアプリケーションのみを使用するようにWindowsに指示する方法はありますか?ユーザーは、他のものを壊すので、(コントロールパネルを介して)すべてのアプリケーションのフォントを大きくしたくない。

ソリューションはWindows XPと互換性があります。誰もが最新バージョンのWindowsを実行しているわけではありません。 ではなく、は、大きなフォントでテキストの一部を消すような方法でレイアウトされているため、ダイアログボックスで使用されるフォントに影響します。

+0

「メニューのみ」を使用してもよろしいですか?それはシステムフォントを置き換えるよりもはるかに多くの作業です(あなたはどうにかする必要があります)。 –

+0

これはダイアログボックスの内容に影響しますか?コントロールパネルでフォントを大きくすると、影響を受けるツリービューは表示されますが、ほとんどのダイアログボックスの内容は表示されません。 SPI_SETNONCLIENTMETRICSの提案は、メニューだけを大きくしました。なぜシステムフォントを置き換えるべきですか?それとも、私がここで望むものを実現するためにシステムフォントを置き換えることを意味しますか? –

答えて

-1

SPI_GETNONCLIENTMETRICSおよびSPI_SETNONCLIENTMETRICSでSystemParametersInfoを試し、NONCLIENTMETRICSのlfMenuFontを修正できます。

あなたはBCGライブラリまたはCodejock、教授、UISのような他の人のようないくつかのツールを使用することができますhttps://msdn.microsoft.com/en-us/library/windows/desktop/ff729175(v=vs.85).aspx

+1

*「現在のアプリケーションのみ」* – IInspectable

+0

この提案は、メニューを満足のいくものにすることができるという点で確かに機能します。しかし、それはすべてのアプリに影響を与えました。 –

1

を参照してください。

これらのライブラリはすべてメニューにカスタムドローを使用しています。そこで、このプログラムのメニューだけのフォントを拡大することができます。

もう1つの簡単な方法があります:新しいVS-Versionに更新するだけで、新しいメニューが表示されます。無料のための所有者の描画の可能な柔軟性...

BTW:ユーザーは、他のプログラムでは、ディスプレイフォントのサイズを拡大するようなより良い解決策を見つけるべきでしょう...すべてのアプリケーションで

関連する問題