none
テキストコントロール(EDIT)の改行表示について RRS feed

  • 質問

  • SetWindowText(hedit,lpmsg);でテキストコントロールにメッセージを表示しようとしています。
    メッセージ本文に改行コードを入れたが、効かないです。("↑"になったんです)。

    テキストの任意位置に、改行したい場合、どうすればいいですか?
    2006年10月4日 1:47

回答

  • どのようにして文字列を設定していますか?
    改行文字は \n だけではなく、 \r\n にしていますか?

    2006年10月4日 1:56
  • EditBoxのスタイルはどうなっていますか?
    ES_MULTILINEはもちろんついていますよね?


    というか、どんな環境でプログラム組んでいるのか明記してもらわないと具体的な回答をつけるのは
    難しいのですが。
    最低限 Visual C++(Visual Studio)のバージョンと、プロジェクトの種類は明記してもらえませんか?

    記述例 : Windows XP Pro SP2 / Visual Studio2005 / Win32 Application(Unicode文字セット)
    2006年10月4日 2:34
  •  YoungerChinn さんからの引用
    ES_READONLYで、background色が灰色になった。これを白に変更する。

    は、WM_CTLCOLORSTATIC で白色のブラシを返せばいいです。

     YoungerChinn さんからの引用
    1行で、表示終われない部分を自動的に次の行に表示する。

    勝手に改行されないですか?(ワードブレイクされないですか?)
    2006年10月4日 4:48

すべての返信

  • どのようにして文字列を設定していますか?
    改行文字は \n だけではなく、 \r\n にしていますか?

    2006年10月4日 1:56
  • 確かに、SetWindowText(hedit,"msg1 \n msg2");で設定した。
    SetWindowText(hedit,"msg1 \r\n msg2");に変更しても、"■↑"になっちゃいました。


    2006年10月4日 2:25
  • EditBoxのスタイルはどうなっていますか?
    ES_MULTILINEはもちろんついていますよね?


    というか、どんな環境でプログラム組んでいるのか明記してもらわないと具体的な回答をつけるのは
    難しいのですが。
    最低限 Visual C++(Visual Studio)のバージョンと、プロジェクトの種類は明記してもらえませんか?

    記述例 : Windows XP Pro SP2 / Visual Studio2005 / Win32 Application(Unicode文字セット)
    2006年10月4日 2:34
  • ご回答、ありがとうございます。

    EDITのstyleに、"ES_MULTILINE"が付いてませんでした。追記した後、うまく表示できました。
    そのレベルの間違い、本当に弱いです。

    なお、開発環境は、Windows XP Pro SP2 / Visual C++ 6.0 / Win32 Application です.
    style=ES_CENTER|ES_READONLY|ES_MULTILINE|WS_CHILD|WS_VISIBLE|WS_BORDER;

    なお、コントロールの制御についてのいい講座サイトがあれば、ご紹介いただきたいです。
    まとめて勉強したいですから。
    (ES_READONLYで、background色が灰色になった。これを白に変更する。
    1行で、表示終われない部分を自動的に次の行に表示する。
    このような課題がまった野残っている)
    2006年10月4日 4:28
  •  YoungerChinn さんからの引用
    ES_READONLYで、background色が灰色になった。これを白に変更する。

    は、WM_CTLCOLORSTATIC で白色のブラシを返せばいいです。

     YoungerChinn さんからの引用
    1行で、表示終われない部分を自動的に次の行に表示する。

    勝手に改行されないですか?(ワードブレイクされないですか?)
    2006年10月4日 4:48
  • ご回答、ありがとうございます。

    ①読み取り専用EDITの背景を白色に変更することができました。

    ②自動改行について
     表示切れの問題は、自動改行されないではなく、行数自体が足らないため。
     (EDITの元高さは、60であり、この画面の場合、2行しか表示できなかった。先、2行目
     の最後の一部が表示切れたのは、自動改行できないと思ったが、実は、行数が足らな いです。今、EDITの高さを80で設定したところ、全文ができました。)



    2006年10月4日 6:46
  •  YoungerChinn さんからの引用
     (EDITの元高さは、60であり、この画面の場合、2行しか表示できなかった。先、2行目
     の最後の一部が表示切れたのは、自動改行できないと思ったが、実は、行数が足らな いです。今、EDITの高さを80で設定したところ、全文ができました。)

    EDITのスタイルに WS_VSCROLL を追加するのはなしでしょうかね。
    2006年10月4日 7:07
  • そうです。

    実は、この読み取り専用EDITは、エラーメッセージ表示するために、作ったものです。
    3行があれば、十分です。WS_VSCROLLまでやる必要がない。

    因みに、EDITに、1行の高さは、FONTとの関係があるか、また固定数値である?

    2006年10月6日 5:11