An application sends an EM_GETFIRSTVISIBLELINE message to determine the uppermost visible line in an edit control.
EM_GETFIRSTVISIBLELINE 
wParam = 0; // not used; must be zero 
lParam = 0; // not used; must be zero 
 This message has no parameters.
The return value is the zero-based index of the uppermost visible line in a multiline edit control. For single-line edit controls, the return value is the zero-based index of the first visible character.
  Windows NT: Requires version 3.1 or later.
  Windows: Requires Windows 95 or later.
  Windows CE: Requires version 1.0 or later.
  Header: Declared in winuser.h.
Edit Controls Overview, Edit Control Messages