- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VC2008にてフォントの変更がうまくいきません)
VC2008でフォントの変更がうまくいかない
このQ&Aのポイント
- VC2008の環境でウィンドウズアプリケーションを作成しています。OnInitDialog内で行っているプログラムでUnicodeでコンパイルして実行するとアサートエラーが発生しますが、マルチバイトでコンパイルすると問題なく動作します。
- 問題が発生しているのはエディットコントロールの派生クラスで、指定したフォントの設定がうまくいきません。SetTextFont関数内でLOGFONTとCFontを使用してフォントの設定を行っています。
- 具体的には、文字幅と文字高さを指定し、CreateFontIndirect関数でフォントを作成していますが、フォントの作成に成功してもエディットコントロールの表示が更新されません。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
::_tcscpy_s(m_logfont.lfFaceName,sizeof(m_logfont.lfFaceName),_T("MS ゴシック")); 上記が原因ですね。 2番目の引数でsizeofを使っていますが、これだとMBCSではOKでもUnicode環境ではだめでしょう。 ::_tcscpy_s(m_logfont.lfFaceName,LF_FACESIZE,_T("MS ゴシック")); とするとか、 ::_tcscpy_s(m_logfont.lfFaceName,sizeof(m_logfont.lfFaceName)/sizeof(TCHAR),_T("MS ゴシック")); とか
お礼
早速のご回答ありがとうございます。 理由が分かり納得です!