0

編集ボックスの最後の文字位置を取得する方法はありますか?つまり、最後にテキストを追加する関数を実装する必要があります。

エディットコントロールで送受信できるメッセージを調べました。しかし、問題はそれを直接行う方法がないということです。

- 別: -

私が考えた別の方法は、EM_CHANGEを受信したときの現在の位置の現在のテキスト位置を記録し、現在の最大位置よりも大きい場合は最大位置整数を更新することです。

int edit_box_last_pos = 0;

case WM_COMMAND:
  switch (HIWORD(wParam))   
  {
    case EN_CHANGE:
        // get the current character position //
        if (LOWORD(SendMessage(error_window_edit,EM_GETSEL,(WPARAM)NULL,(LPARAM)NULL)) > max_char_pos )
        {
          max_char_pos =LOWORD(SendMessage(error_window_edit,EM_GETSEL,(LPARAM)NULL,(WPARAM)NULL));
        }

        return 0;
        break;
    default:
    break;  
  }

しかし、これではなく、これを直接行う方法はありますか?

- 前もって感謝します -

4

1 に答える 1

3

これがあなたが探しているものだと思います。

length = SendMessage(error_window_edit, WM_GETTEXTLENGTH, 0, 0);

こちらをご覧ください

于 2012-11-10T07:06:14.653 に答える