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.
Legt das Fensterhandle, zu der der Punkt pt auf dem Bildschirm gehört, in wh ab.
int _FindWindow(WHANDLE FAR *wh, Point pt)
WHANDLE FAR *wh; /* Pointer to window handle. */
Point pt; /* Point. */
Hinweise
_FindWindow( ) gibt eine ganze Zahl zurück, die den Fensterbereich angibt, in dem sich der Punkt befindet. Wenn sich der Punkt z. B. innerhalb des Fensters befindet, gibt _FindWindow( ) den Wert inContent zurück.
Die folgende Tabelle enthält eine Auflistung der möglichen Rückgabewerte, wie sie in PRO_EXT.H definiert sind.
Rückgabewerte _FindWindow( )
| Value | Position des Punktes |
|---|---|
| inBorder | Im Fensterrahmen |
| inHelp | Im Hilfebereich |
| inContent | Im Inhalts-/Textbereich |
| inDrag | Auf der Titelleiste |
| inGrow | Auf dem Größen-Steuerelement (Size) |
| inGoAway | Auf dem Schließfeld |
| inZoom | Auf dem Zoom-Steuerelement |
| inVUpArrow | Auf dem aufwärts zeigenden Pfeil der vertikalen Bildlaufleiste |
| inVDownArrow | Auf dem abwärts zeigenden Pfeil der vertikalen Bildlaufleiste |
| inVPageUp | Im Bereich der vertikalen Bildlaufleiste für einen Bildlauf nach oben |
| inVPageDown | Im Bereich der vertikalen Bildlaufleiste für einen Bildlauf nach unten |
| inVThumb | Auf dem Bildlauffeld der vertikalen Bildlaufleiste |
| inHUpArrow | Auf dem rechten horizontalen Bildlaufpfeil |
| inHDownArrow | Auf dem linken horizontalen Bildlaufpfeil |
| inHPageUp | Im Bereich der horizontale Bildlaufleiste für einen Bildlauf nach rechts |
| inHPageDown | Im Bereich der horizontalen Bildlaufleiste für einen Bildlauf nach links |
| inHThumb | Auf dem Bildlauffeld der horizontalen Bildlaufleiste |
| inMenuBar | Auf der Menüleiste |
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 gewartet, bis mit der linken Maustaste geklickt wird. Dann wird mit _FindWindow( ) das Fensterhandle für die Mausposition ermittelt, wenn die Maustaste gedrückt wird.
Visual FoxPro-Code
WAIT WINDOW "Click mouse on a window" NOWAIT
SET LIBRARY TO FINDWIND
C-Code
#include <pro_ext.h>
void putLong(long n, int width)
{
Value val;
val.ev_type = 'I';
val.ev_long = n;
val.ev_width = width;
_PutValue(&val);
}
FAR FindWindowFn(ParamBlk FAR *parm)
{
WHANDLE wh;
Point mousePos;
int where;
// Get mouse position when left button goes down
while (_InKey(0, MOUSEACTIVE | HIDECURSOR) != 151);
while (!_MousePos(&mousePos));
switch (where = _FindWindow(&wh, mousePos))
{
case inBorder:
_PutStr("\nMouse down inBorder"); break;
case inHelp:
_PutStr("\nMouse down inHelp"); break;
case inContent:
_PutStr("\nMouse down inContent"); break;
case inDrag:
_PutStr("\nMouse down inDrag"); break;
case inGrow:
_PutStr("\nMouse down inGrow"); break;
case inGoAway:
_PutStr("\nMouse down inGoAway"); break;
case inZoom:
_PutStr("\nMouse down inZoom"); break;
case inVUpArrow:
_PutStr("\nMouse down inVUpArrow"); break;
case inVDownArrow:
_PutStr("\nMouse down inVDownArrow"); break;
case inVPageUp:
_PutStr("\nMouse down inVPageUp"); break;
case inVPageDown:
_PutStr("\nMouse down inVPageDown"); break;
case inVThumb:
_PutStr("\nMouse down inVThumb"); break;
case inHUpArrow:
_PutStr("\nMouse down inHUpArrow"); break;
case inHDownArrow:
_PutStr("\nMouse down inHDownArrow"); break;
case inHPageUp:
_PutStr("\nMouse down inHPageUp"); break;
case inHPageDown:
_PutStr("\nMouse down inHPageDown"); break;
case inHThumb:
_PutStr("\nMouse down inHThumb"); break;
case inMenuBar:
_PutStr("\nMouse down inMenuBar"); break;
default:
_PutStr("\nMouse down someplace else"); break;
}
_GlobalToLocal(&mousePos, wh);
_PutStr("\nPosition relative to window:");
putLong(mousePos.v, 5);
_PutChr(' ');
putLong(mousePos.h, 5);
}
FoxInfo myFoxInfo[] = {
{"ONLOAD", (FPFI) FindWindowFn, CALLONLOAD, ""},
};
FoxTable _FoxTable = {
(FoxTable FAR *) 0, sizeof(myFoxInfo)/sizeof(FoxInfo), myFoxInfo
};
Siehe auch
_MousePos( ), API-Bibliotheksroutine | Zugreifen auf die Visual FoxPro-API | _FindWindowP( ), API-Bibliotheksroutine