Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Stellt sicher, dass die Versatzposition, die Sie in der Datei im bezeichneten Bearbeitungsfenster angeben, sichtbar ist.
void _EdScrollToPos(WHANDLE wh, EDPOS thePos, int Center)
WHANDLE wh; /* Handle of editing window. */
EDPOS thePos; /* Offset position to make visible. */
int Center; /* Whether or not to center position
in window. */
Hinweise
_EdScrollToPos( ) verschiebt die Einfügemarke nicht. Wenn Sie die Position vertikal im Fenster zentrieren möchten, geben Sie für Center den Wert Wahr an.
Weitere Informationen zum Erstellen einer API-Bibliothek und ihrer Integration in Visual FoxPro finden Sie unter Zugreifen auf die Visual FoxPro-API.
Beispiel
Im folgenden Beispiel wird eine durch einen Parameter angegebene Datei zum Bearbeiten geöffnet. Nachdem durch Aufrufen von _EdScrollToPos( ) ein Bildlauf zum Anfang der Datei durchgeführt wurde, ruft die _EdPosInView( )-Prozedur auf, um zu überprüfen, ob der Anfang und das Ende der Datei sichtbar sind. Die Ergebnisse werden auf dem Bildschirm ausgegeben. Anschließend wird durch Aufrufen von _EdScrollToPos( ) ein Bildlauf zum Ende der Datei durchgeführt. _EdPosInView( ) wird erneut aufgerufen, um zu überprüfen, ob der Anfang und das Ende der Datei sichtbar sind.
Visual FoxPro-Code
SET LIBRARY TO EDSCTOPO
= POSINVIEW("x")
C-Code
#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);
_EdGetEnv(wh, &EdEnv);
_EdScrollToPos(wh, 0, FALSE);
_PutStr("\n_EdScrollToPos(wh, 0)");
_PutStr("\n_EdPosInView(wh, 0) =");
putLong(_EdPosInView(wh, 0));
_PutStr("\n_EdPosInView(wh, EdEnv.length) =");
putLong(_EdPosInView(wh, EdEnv.length));
_EdScrollToPos(wh, EdEnv.length, FALSE);
_PutStr("\n_EdScrollToPos(wh, EdEnv.length)");
_PutStr("\n_EdPosInView(wh, 0) =");
putLong(_EdPosInView(wh, 0));
_PutStr("\n_EdPosInView(wh, EdEnv.length) =");
putLong(_EdPosInView(wh, EdEnv.length));
}
FoxInfo myFoxInfo[] = {
{"POSINVIEW", (FPFI) Example, 1, "C"},
};
FoxTable _FoxTable = {
(FoxTable FAR *) 0, sizeof(myFoxInfo)/sizeof(FoxInfo), myFoxInfo
};
Siehe auch
_EdPosInView( ), API-Bibliotheksroutine | Zugreifen auf die Visual FoxPro-API | SYS(2002) - Einfügemarke aktivieren/deaktivieren | _EdInsert( ), API-Bibliotheksroutine