Last Updated 2003/03/28
Programming Tips Visual C++ MFC CRichEditCtrl  索 引 
RichEditのフォント
2003/03/28

RichEditCtrl にフォントをセットするには,SetDefaultCharFormat をしなければならない.
フォントを作成して CRichEditCtrl に SetFont すると,いろいろな不具合が生じる.

不具合内容

SetWindowText などでは SetFont のフォントで表示される.
しかし,キーボードから日本語を入力すると,違うフォントで表示される.
例えば,"MS 明朝"をセットしているのに,キーボードからの入力で英数字は明朝で表示されるが,日本語(2バイト文字)はゴシックで表示される.

やっかいなことに RichEdit に対して GetDefaultCharFormat したらちゃんと"MS 明朝"が返ってくる.

SetWindowText 等で表示した2バイト文字がカーソルと合わない.1バイトずつ移動している感じ.始めのうちは文字の真ん中あたりでカーソルが移動するが,桁が進むにつれて文字よりも先にカーソルがいってしまう.

-------------------------------------------------------
表示されている日本語   |
                      カーソル
-------------------------------------------------------

表示させた文字じゃなく,入力した文字にはちゃんと文字ごとでカーソルは移動するし,行末もちゃんと行末にカーソルがいく.


参照
前後のTips
RichEditのフォント

DSS ProgrammingTipsCGI Ver2.02