HOWTO: Place a Caret After Edit-Control Text

ID: Q12190


The information in this article applies to:
  • Microsoft Windows Software Development Kit (SDK)
  • Microsoft Win32 Software Development Kit (SDK)
  • Microsoft Windows 2000


SUMMARY

The EM_SETSEL message can be used to place a selected range of text in a Windows edit control. If the starting and ending positions of the range are set to the same position, no selection is made and a caret can be placed at that position. To place a caret at the end of the text in a Windows edit control and set the focus to the edit control, do the following:


   hEdit = GetDlgItem( hDlg, ID_EDIT );    // Get handle to control.
   SetFocus( hEdit );
   SendMessage( hEdit, EM_SETSEL, 0, MAKELONG(0xffff,0xffff) ); 
It is also possible to force the caret to a desired position within the edit control. The following code fragment shows how to place the caret just to the right of the Nth character:

   hEdit = GetDlgItem( hDlg, ID_EDIT );    // Get handle to control.
   SetFocus( hEdit );
   SendMessage( hEdit, EM_SETSEL, 0, MAKELONG(N,N) );
                                        // N is the character position. 

Additional query words:

Keywords : kbCtrl kbEditCtrl kbNTOS kbWinOS2000 kbSDKWin32 kbGrpUser kbWinOS
Version : WINDOWS:
Platform : WINDOWS
Issue type : kbhowto


Last Reviewed: February 2, 2000
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.