DrawTextとワードブレーク

DrawText()メソッドはnFormatの値で文字の表示の方法が変わってきます。

DrawText()メソッド
virtual int DrawText( LPCTSTR lpszString, int nCount, LPRECT lpRect, UINT nFormat ); int DrawText( const CString& str, LPRECT lpRect, UINT nFormat );
引数概要
lpszString 描画文字列のポインタ
nCount 文字列のバイト数
lpRect CRectオブジェクト(描画領域?)
nFormat テキストのフォーマット方法。論理和で設定可能
str 描画文字列

エディタ的な改行を行う場合はnFormatにDT_WORDBREAKを指定します。
この引数を指定すると、ワードの切れ目で改行します。
ワードの切れ目は、単語単位の切れ目です。
,(コンマ)は切れ目とはみなされません。

;
nFormatの値(抜粋)
概要
DT_BOTTOM テキストを四角形の下辺に揃えます。
この値は必ず DT_SINGLELINE と組み合わせます。
DT_CALCRECT 四角形の幅と高さを決めます。
テキストが複数行あるときは、DrawText 関数は、
引数 lpRect で指定された四角形の幅を変えずに、
テキストの最終行が収まるように、四角形の底辺を拡張します。
テキストが 1 行だけのときは、DrawText 関数は四角形の右辺を調整して、
最後の文字が四角形に収まるようにします。どちらの場合も、
DrawText 関数はフォーマットされたテキストの高さを返しますが、
テキストの描画は行いません。
DT_CENTER テキストを水平方向に中央揃えします
DT_END_ELLIPSIS
DT_PATH_ELLIPSIS
指定された四角形に収まるように、
指定された文字列の一部を省略記号 (...) に置き換えます。
文字列を変更するときは、DT_MODIFYSTRING フラグも指定する必要があります。
DT_END_ELLIPSIS を指定すると、文字列の末尾部分の文字が置換されます。
DT_PATH_ELLIPSIS を指定すると、文字列の中間部分の文字が置換されます。
DT_PATH_ELLIPSISでは、文字列に円記号 (\) が含まれていると、
最後の円記号の後のテキストはできる限り残されます。
DT_EXPANDTABS タブ文字数を展開します。デフォルトのタブ設定は 8 文字です。
DT_EXTERNALLEADING 行の高さにフォントの外部リーディングを含めます。
通常、外部リーディングはテキストの行の高さには含まれません。
DT_LEFT テキストを左端に揃えます。
DT_MODIFYSTRING 表示テキストに合わせて、指定された文字列を変更します。
このフラグを指定するときは、DT_END_ELLIPSIS または
DT_PATH_ELLIPSIS フラグも指定する必要があります
DT_NOCLIP クリッピングせずに描画します。