◀Unicode版開発トップへ
  • 797 設定画面のテキストデータが1文字欠ける
    • 798 Re:設定画面のテキストデータが1文字欠ける
  • [797] 設定画面のテキストデータが1文字欠ける anonymous 2009年02月01日 09:02

    設定処理上のバグがありますので報告します。
    (共通設定、タイプ別設定のテキスト入力項目です。他にもあるかもしれませんが未確認です)

    例:
    char buff[10];という保存用バッファがあり、
    EM_LIMITTEXTでTextBoxの最大入力文字数を9(buffに格納するため9文字+終端1個)としているとき

    そのデータの取得GetDlgItemTextで指定する最大文字数は10(文字数9+終端1個)です
    現状、GetDlgItemTextでも9を指定しているため8文字+終端1個となり1文字分が消えます

    *******************************
    GetDlgItemTextで指定する最大文字数は終端文字を含みます
    *******************************
    (試したところ、終端文字はGetDlgItemText APIで自動的に書き込まれます)

    たとえば、タイプ別設定>その他のインデント文字はバッファとして
    64文字(終端を含む)確保されており、63文字(終端を含まない)
    まで入力できますが、設定後開くと62文字(最後の1文字が消えている)
    しかありません。
    • [798] Re:設定画面のテキストデータが1文字欠ける ryoji 2009年02月01日 15:48

      EM_LIMITTEXT使ってる個所はたくさんあると思いますが、[その他のインデント文字]以外に気付いている個所があるようでしたら教えてください。

      全体を一斉に見直すにしろ、報告され次第順次手直ししていくにしろ、今わかっている分の修正漏れがあったりするのはナンセンスだと思いますので。

      自分がざっと見た感じでは、軒並み間違えているということもなく、たまたまうっかりミスが混入している程度のように思えます。