<< Inhaltsverzeichnis Suchen >>

GR_SEND_TO_WINDOW

Funktion

Syntax:

GR_SEND_TO_WINDOW(<HANDLES>,<TYP>,<TEXT>)

<HANDLE>        = <NUM-AUSDRUCK>
<TYP>                 = <NUM-AUSDRUCK>
<TEXT>               = <STRING-AUSDRUCK>

Bedeutung:

GR_SEND_TO_WINDOW sendet unter WINDOWS Text oder Steuerzeichen an ein anderes Window. <HANDLE> ist die Identifizierungsnummer des Windows und <TEXT> enthält die zu sendenden Zeichen.

<TYP> legt fest, welches Datenformat gesendet werden soll:

 

<TYP>

Datenformat

 

2
3
4
5

6
Jeder andere Wert

Menuetasten
Controltasten (Strg/...)
ALT-Tasten (Alt/...)
beliebige Message: <TEXT> hat folgenden Inhalt:
"<Message>;<wParam>;<lParam>"
ASCII-Text (wird mit SendMessage gesendet)
ASCII-Text (wird mit PostMessage gesendet)

 

Die Zeichen werden einzeln über PostMessage bzw. SendMessage an das Zielwindow gesendet. GR_SEND_TO_WINDOW liefert als Ergebnis den Wert des letzten ausgeführten PostMessage-Aufrufs. Das Ergebnis ist >0, wenn der Aufruf erfolgreich war, andernfalls 0. Ist <HANDLE> keine gültige Identifizierungsnummer, so liefert GR_SEND_TO_WINDOW als Ergebnis -1.

<Message>, <wParam> und <lParam> müssen numerische Werte enthalten..

Unter MS-DOS und UNIX liefert diese Funktion als Ergebnis stets -1.

 

Achtung: Unter WINDOWS kann eine Anwendung nur dann Daten über GR_SEND_TO_WINDOW empfangen, wenn sie den Focus hat. Deshalb muß diese Anwendung vor dem Senden mit der Anweisung GR_SHOWWINDOW in den Vordergrund geholt werden.

 

 

Achtung: Das Senden von Controltasten (Strg/...) mit <TYP> = 2 ist nicht immer erfolgreich, da manche Anwendungen die zugehörigen Nachrichten gesondert behandeln.

 

 

Beispiel:

/* WRITE auf Fettschrift einstellen und "Hallo" senden
HANDLE% = GR_FINDWINDOW("","Write")
IF HANDLE% <= 0
THEN ERRORMES = "Write läuft nicht"
ELSE /* Write in den Vordergrund holen
         H% = GR_SHOWWINDOW("Write",0)
         /* Childwindow mit Klasse "MSWRITE_DOC" suchen
         CHILD_HANDLES$ = 
                              GR_GET_CHILDWINDOW_HANDLES$(1,HANDLE%)
         CHILD_ANZ% = INSTR_COUNT(CHILD_HANDLES$,";")
         CHILD_HANDLE% = 0
         FOR J%=1 TO CHILD_ANZ% + 1
                 H$ = SUBSTR$(CHILD_HANDLES$,";",J%)
                 CH_HANDLE% = VAL(H$)
                 CLASS$ = GR_GET_CLASS_NAME$(CH_HANDLE%)
                 IF UPPER$(CLASS$) = "MSWRITE_DOC"
                 THEN CHILD_HANDLE% = CH_HANDLE%
                 ENDIF
         ENDLOOP
         IF CHILD_HANDLE% = 0
         THEN ERRORMES = "Window MSWRITE_DOC nicht gefunden"
         ELSE /* Menuetasten Schrift/Fett an das Hauptwindow senden
                  SENDE_TEXT$ = "ff"
                  H% = GR_SEND_TO_WINDOW(HANDLE%,2,SENDE_TEXT$)
                  IF H% <= 0
                  THEN ERRORMES = "Fehler-1"+STR$(H%)
                  ENDIF
                  /* Text "Hallo" an das MSWRITE_DOC-Window senden
                  H% =  GR_SEND_TO_WINDOW(CHILD_HANDLE%,1,"Hallo")
                  IF H% <= 0
                  THEN ERRORMES = "Fehler-2"+STR$(H%)
                  ENDIF
         ENDIF
ENDIF

siehe auch:

GR_SHOWWINDOW, GR_GET_WINDOW_HANDLES$, GR_FINDWINDOW, GR_GET_CHILDWINDOW_HANDLES$, GR_SEND_EBUS_MESSAGE