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 回答