Hola NEBIRE: muchas gracias por contestar.
Efectivamente, lo que estaba haciendo hasta ahora es prácticamente idéntico a lo que me sugerís, pero como decís, lo único que garantiza es que el cursor vuelva a la misma línea.
Lo que hacía antes era: guardar el valor de SelStart, luego simular un Ctl+PageDn (con SendInput), tomar el nuevo valor de SelStart, guardar ese valor y, al recargar el archivo, hacer todo a la inversa.
Con esto recuperaba todo: posición del texto y del cursor.
El problema nuevo apareció al querer guardar la posición si no usamos el margen derecho para que no haga un WordWrap, o sea, que una línea larga se "salga" del text box. Ahí empezó a pasar cualquier cosa. A grosso modo sigue respetando línea y posición del texto, pero solo a "grosso modo".
Ahora estaba justamente probando GetScrollInfo y SetScrollInfo (user32.dll), que parecen funcionar bien, para suplir las faltas del RichTextBox en VB6.
Cuando haga unas pruebas más comento qué pasó.
Nuevamente muchas gracias por tu interés.
Juan
Efectivamente, lo que estaba haciendo hasta ahora es prácticamente idéntico a lo que me sugerís, pero como decís, lo único que garantiza es que el cursor vuelva a la misma línea.
Lo que hacía antes era: guardar el valor de SelStart, luego simular un Ctl+PageDn (con SendInput), tomar el nuevo valor de SelStart, guardar ese valor y, al recargar el archivo, hacer todo a la inversa.
Con esto recuperaba todo: posición del texto y del cursor.
El problema nuevo apareció al querer guardar la posición si no usamos el margen derecho para que no haga un WordWrap, o sea, que una línea larga se "salga" del text box. Ahí empezó a pasar cualquier cosa. A grosso modo sigue respetando línea y posición del texto, pero solo a "grosso modo".
Ahora estaba justamente probando GetScrollInfo y SetScrollInfo (user32.dll), que parecen funcionar bien, para suplir las faltas del RichTextBox en VB6.
Cuando haga unas pruebas más comento qué pasó.
Nuevamente muchas gracias por tu interés.
Juan