2

現在、現在のフォントに基づいてアプリケーションのフォントのサイズを変更しようとしています。これを行うためにWM_GETFONT、フォントを取得し、フォントの幅と高さを使用した式でサイズを変更します。入力の場合、問題は戻り値がシステムフォントであり、そのフォントの仕様がわからないことです。

システムフォントの仕様を入手する方法を教えてもらえますか?システムフォントはOS間で異なりますか?

4

1 に答える 1

2

次のコードを使用して、のLOGFONT構造を取得できます。HFONT

LOGFONT lf = { 0 };
::GetObject( hFont, sizeof( lf ), &lf );

これで、必要なすべての情報が得られ、必要な部分だけを変更できます。取り戻すHFONTには、次を使用しますCreateFontIndirect

HFONT hFontCustom = ::CreateFontIndirect( &lf );

を使用する代わりに、上に示したように、コピー、変更、および使用できる構造がすでにある構造を取得するためにを使用WM_GETFONTすることも検討できます。SystemParametersInfoNONCLIENTMETRICSLOGFONTCreateFontIndirect

2番目の質問については、フォント設定はユーザーごとの設定であるため、2人の異なるユーザーがログオンしている同じインストールでも異なる可能性があります。

于 2013-01-10T00:04:01.580 に答える