DrawText(MFC)関数で行の折り返し表示をしたい – プログラミング – Home

DrawText(MFC)関数で行の折...
 
通知
すべてクリア

[解決済] DrawText(MFC)関数で行の折り返し表示をしたい


ひか
 ひか
(@ひか)
ゲスト
結合: 24年前
投稿: 8
Topic starter  

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
(@kazuma)
ゲスト
結合: 24年前
投稿: 217
 

単語単位(スペース等で区切る)でないと改行してくれないようです。


返信引用
ひか
 ひか
(@ひか)
ゲスト
結合: 24年前
投稿: 8
Topic starter  

kazumaさんありがとうございます。
まだ試してないですが次の質問についてもお願いします。

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

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


返信引用
kazuma
 kazuma
(@kazuma)
ゲスト
結合: 24年前
投稿: 217
 

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

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

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

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

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


返信引用
ひか
 ひか
(@ひか)
ゲスト
結合: 24年前
投稿: 8
Topic starter  

kazuma さんありがとうございました。

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


返信引用
ひか
 ひか
(@ひか)
ゲスト
結合: 24年前
投稿: 8
Topic starter  

解決しました


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました