現在、現在のフォントに基づいてアプリケーションのフォントのサイズを変更しようとしています。これを行うためにWM_GETFONT
、フォントを取得し、フォントの幅と高さを使用した式でサイズを変更します。入力の場合、問題は戻り値がシステムフォントであり、そのフォントの仕様がわからないことです。
システムフォントの仕様を入手する方法を教えてもらえますか?システムフォントはOS間で異なりますか?
次のコードを使用して、のLOGFONT
構造を取得できます。HFONT
LOGFONT lf = { 0 };
::GetObject( hFont, sizeof( lf ), &lf );
これで、必要なすべての情報が得られ、必要な部分だけを変更できます。取り戻すHFONT
には、次を使用しますCreateFontIndirect
。
HFONT hFontCustom = ::CreateFontIndirect( &lf );
を使用する代わりに、上に示したように、コピー、変更、および使用できる構造がすでにある構造を取得するためにを使用WM_GETFONT
することも検討できます。SystemParametersInfo
NONCLIENTMETRICS
LOGFONT
CreateFontIndirect
2番目の質問については、フォント設定はユーザーごとの設定であるため、2人の異なるユーザーがログオンしている同じインストールでも異なる可能性があります。