質問: 現在MFCを用いて、visual studioでフォームアプリケーションを作っています。 そこで下記点で迷っています。 1 コントロール「Static Text」では文字の大きさを変えることができず、変えるにはダイアログのプロパティでフォント設定一括で行わなければならない。 →個別で文字の大きさを変えることはできないか? 2 1でダイアログのフォントの大きさを変更した時、ダイアログの領域(表示)が拡大されてしまう。またフォームデザイナーの表示倍率の変更(拡大縮小)ができないため作業しづらい →拡大しないようにしたい or フォームデザイナーの拡大縮小方法があれば知りたい。 ご回答よろしくお願いいたします。
回答: > > 現在MFCを用いて、visual studioでフォームアプリケーションを作っています。 > > > MFCで作るアプリは「MFCアプリケーション」とした方が伝わりやすいです。「フォームアプリケーション」は.NET Frameworkのフォームのことを指す場合が多いので、混同される可能性があります。両者は全くの別物です。 > > →個別で文字の大きさを変えることはできないか? > > > **ダイアログ エディター**では、配置するコントロールに個別にフォントを設定することができません。これは仕様なので仕方ありません コントロールに対して個別にフォントを設定したい場合は、`OnInitDialog`メソッド内にフォントを設定するコードを実装する必要があります。 コード例 ``` // TODO: 初期化をここに追加します。 // フォントを作成 LOGFONT lf; this->GetFont()->GetLogFont(&lf); lf.lfHeight = 160; // 16.0ポイント(1/10ポイント単位で指定) CFont font; font.CreatePointFontIndirect(&lf); // コントロールのフォントを変更 this->GetDlgItem(IDC_STATIC_MYTEXT)->SetFont(&font); // フォントハンドルがクローズされないようにする font.Detach(); ``` MFCではスタティックテキストのIDが`IDC_STATIC`に固定されていますので、フォントを変更したいものには個別に識別できる名前を付けてください。上記コード例では`IDC_STATIC_MYTEXT`にしています。 追記 CFormViewベースの場合は、`OnInitialUpdate`メソッドに上記コードを追加してください。