编辑框的最后一个字符位置

时间:2012-11-10 07:03:20

标签: c++ winapi textbox

是否有办法获取编辑框的最后一个字符位置? 我的意思是我需要实现一个函数来附加一些文本到它的结尾。

我研究了可以通过编辑控件发送或接收的消息。 但问题是没有办法直接做到。

- 替代: -

我认为的另一种选择是记录当前的文本位置 收到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;  
  }

但不是这样,有没有办法直接这样做?

- 提前致谢 -

1 个答案:

答案 0 :(得分:3)

我认为这就是你要找的东西。

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

请参阅here