• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VC2008にてフォントの変更がうまくいきません)

VC2008でフォントの変更がうまくいかない

このQ&Aのポイント
  • VC2008の環境でウィンドウズアプリケーションを作成しています。OnInitDialog内で行っているプログラムでUnicodeでコンパイルして実行するとアサートエラーが発生しますが、マルチバイトでコンパイルすると問題なく動作します。
  • 問題が発生しているのはエディットコントロールの派生クラスで、指定したフォントの設定がうまくいきません。SetTextFont関数内でLOGFONTとCFontを使用してフォントの設定を行っています。
  • 具体的には、文字幅と文字高さを指定し、CreateFontIndirect関数でフォントを作成していますが、フォントの作成に成功してもエディットコントロールの表示が更新されません。

質問者が選んだベストアンサー

  • ベストアンサー
  • yosi_yosi
  • ベストアンサー率35% (165/468)
回答No.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 ゴシック")); とか

PaPaiYa09
質問者

お礼

早速のご回答ありがとうございます。 理由が分かり納得です!

関連するQ&A