_EdScrollToSel( ) (Rutina de biblioteca API)

Se asegura de que el texto seleccionado en la ventana designada está visible.

void _EdScrollToSel(WHANDLE wh, int Center)
WHANDLE wh;            /* Handle of editing window. */
int Center;                  /* Whether to center anchor point in
 window. */

Observaciones

Especifique Center como verdadero para centrar el punto de acoplamiento verticalmente en la ventana o como falso si no desea centrar el punto de acoplamiento.

Para obtener más información acerca de cómo crear una biblioteca API e integrarla con Visual FoxPro, vea Acceso a la API de Visual FoxPro.

Ejemplo

El siguiente ejemplo abre un archivo especificado por un parámetro para su modificación. El ejemplo realiza una selección cerca del final del archivo. Cuando el usuario presione una tecla como respuesta a un comando WAIT de Visual FoxPro, el ejemplo desplaza la ventana de edición a la selección mediante una llamada a _EdScrollToSel( ). A continuación, el ejemplo repite la operación para una selección realizada cerca del principio del archivo.

Código Visual FoxPro

SET LIBRARY TO EDSCTOSE
= TOSEL("x")

Código C

#include <pro_ext.h>

void putLong(long n)
{
   Value val;

   val.ev_type = 'I';
   val.ev_long = n;
   val.ev_width = 10;

   _PutValue(&val);
}

FAR Example(ParamBlk FAR *parm)
{
#define pFILENAME ((char FAR *) _HandToPtr(parm->p[0].val.ev_handle))

   WHANDLE wh;
   EDENV EdEnv;

   if (!_SetHandSize(parm->p[0].val.ev_handle, 
      parm->p[0].val.ev_length+1))
   {
      _Error(182); // "Insufficient memory"
   }
   pFILENAME[parm->p[0].val.ev_length] = '\0';

   _HLock(parm->p[0].val.ev_handle);
   wh = _EdOpenFile(pFILENAME, FO_READONLY);
   _HUnLock(parm->p[0].val.ev_handle);

   _EdScrollToPos(wh, 0, TRUE);

   _EdGetEnv(wh, &EdEnv);
   _EdSelect(wh, EdEnv.length - 16, EdEnv.length);

   _PutStr("\nMade selection at end of file.");
   _Execute("WAIT WINDOW 'Press any key to scroll to selection.'");

   _EdScrollToSel(wh, TRUE);
   _EdSelect(wh, 1, 16);

   _PutStr("\nMade selection at beginning of file.");
   _Execute("WAIT WINDOW 'Press any key to scroll to selection.'");

   _EdScrollToSel(wh, TRUE);
}

FoxInfo myFoxInfo[] = {
   {"TOSEL", (FPFI) Example, 1, "C"},
};
FoxTable _FoxTable = {
   (FoxTable FAR *) 0, sizeof(myFoxInfo)/sizeof(FoxInfo), myFoxInfo
};

Vea también

_EdGetPos( ) (Rutina de biblioteca API) | _EdSelect( ) (Rutina de biblioteca API) | _EdSetPos( ) (Rutina de biblioteca API)