DrawText(MFC)関数で行の折り返し表示をしたい

[戻る]
ひか 2001/11/06(火) 23:37:41
VC++勉強中の者です。
MFCのDrawText関数を使ってピクチャーボックスに文字列を表示したいのですが、
文字列長がボックスの横幅より長いためDT_LEFT|DT_WORDBREAKを指定し折り返し
表示を期待しましたが折り返してくれません何故でしょうか?
DT_LEFT,DT_CENTER,DT_NOCLIPなどは正しく働きます。
コーディングは以下の用です。よろしくお願いします

  CWnd* mp=GetDlgItem(IDC_PICT);
    CClientDC mdc(mp);
    CRect mRect;
    mp->GetClientRect(mRect);
  mdc.FillSolidRect(mRect,WHITE);
  CPen mPen(PS_SOLID,1,BLACK);

    mdc.DrawText(data,-1,mRect,DT_LEFT|DT_WORDBREAK);

kazuma 2001/11/07(水) 08:56:49
単語単位(スペース等で区切る)でないと改行してくれないようです。

ひか 2001/11/07(水) 10:44:28
kazumaさんありがとうございます。
まだ試してないですが次の質問についてもお願いします。

(スペースなどで区切る)とありますが
単語の意味はスペースで区切られている文字列ということですか?
スペース以外にも区切り記号があるのですか?

表示したいのはディレクトリパスです。

kazuma 2001/11/07(水) 13:22:10
> 単語の意味はスペースで区切られている文字列ということですか?
> スペース以外にも区切り記号があるのですか?

スペースを入れるとその部分で折り返してくれるようですが、それ以上のことは分かりません。あしからず。

> 表示したいのはディレクトリパスです。

リードオンリーのエディットボックスに表示するのではだめでしょうか?

だめなら自分で文字列を分割して表示するしかないと思います。

ひか 2001/11/11(日) 19:44:00
kazuma さんありがとうございました。

折り返し点が半角文字ならスペースで折り返しとなり、
全角文字ならそのままで折り返してくれます
リードオンリーのエディットボックスは\r\nを入れないと駄目です

ひか 2001/11/11(日) 19:45:28
[[解決]]
解決しました

古いスレッドには追加発言できません。