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さんありがとうございます。
まだ試してないですが次の質問についてもお願いします。
(スペースなどで区切る)とありますが
単語の意味はスペースで区切られている文字列ということですか?
スペース以外にも区切り記号があるのですか?
表示したいのはディレクトリパスです。
> 単語の意味はスペースで区切られている文字列ということですか?
> スペース以外にも区切り記号があるのですか?
スペースを入れるとその部分で折り返してくれるようですが、それ以上のことは分かりません。あしからず。
> 表示したいのはディレクトリパスです。
リードオンリーのエディットボックスに表示するのではだめでしょうか?
だめなら自分で文字列を分割して表示するしかないと思います。
kazuma さんありがとうございました。
折り返し点が半角文字ならスペースで折り返しとなり、
全角文字ならそのままで折り返してくれます
リードオンリーのエディットボックスは\r\nを入れないと駄目です
解決しました