## Tcl8.6.17/Tk8.6.17 Documentation > Tk C API > EventHndlr

### Tcl/Tk Applications | Tcl Commands | Tk Commands | [incr Tcl] Package Commands | SQLite3 Package Commands | TDBC Package Commands | tdbc::mysql Package Commands | tdbc::odbc Package Commands | tdbc::postgres Package Commands | tdbc::sqlite3 Package Commands | Thread Package Commands | Tcl C API | Tk C API | [incr Tcl] Package C API | TDBC Package C API

  NAME
    Tk_CreateEventHandler, Tk_DeleteEventHandler — X 行事によって呼戻す関連の手続函数　 associate procedure callback with an X event
  SYNOPSIS
    #include <tk.h>
    Tk_CreateEventHandler(tkwin, mask, proc, clientData)
    Tk_DeleteEventHandler(tkwin, mask, proc, clientData)
  引数 ARGUMENTS
    Tk_Window tkwin (入力in)
    unsigned long mask (入力in)
    Tk_EventProc *proc (入力in)
    ClientData clientData (入力in)
  説明 DESCRIPTION
  KEYWORDS

### NAME

Tk_CreateEventHandler, Tk_DeleteEventHandler — X 行事によって呼戻す関連の手続函数　 associate procedure callback with an X event

### SYNOPSIS

#include <tk.h>
Tk_CreateEventHandler(tkwin, mask, proc, clientData)
Tk_DeleteEventHandler(tkwin, mask, proc, clientData)

### 引数 ARGUMENTS

Tk_Window tkwin (入力in)
  その中で行事が起こるかもしれない窓の字句｡　 Token for window in which events may occur.

unsigned long mask (入力in)
  その為に手続函数が呼ばれるべき行事のビット-櫛(ButtonPressMask のような) Bit-mask of events (such as ButtonPressMask) for which proc should be called.

Tk_EventProc *proc (入力in)
  何時であれ､櫛の中の行事が与えられた tkwin によって与えられた窓内に起こる時いつでも起動する為の手続函数｡　　 Procedure to invoke whenever an event in mask occurs in the window given by tkwin.

ClientData clientData (入力in)
  手続函数に渡す為の任意の一語値｡　 Arbitrary one-word value to pass to proc.

### 説明 DESCRIPTION

Tk_CreateEventHandler は proc の為に､何時であれ mask によって指定された行事型の一つが､ tkwin によって指定された窓のなかで生じた時に起動されるように手配する｡ proc への呼戻しは Tk_HandleEvent によってなされる; この仕組みは Tk_HandleEvent を通した行事を急送する算譜の中だけで動く(又は､ Tcl_DoOneEvent や Tk_MainLoop の様な Tk_HandleEvent を呼出す他の Tk 手続函数を通して)｡ Tk_CreateEventHandler arranges for proc to be invoked in the future whenever one of the event types specified by mask occurs in the window specified by tkwin. The callback to proc will be made by Tk_HandleEvent; this mechanism only works in programs that dispatch events through Tk_HandleEvent (or through other Tk procedures that call Tk_HandleEvent, such as Tcl_DoOneEvent or Tk_MainLoop).

proc は型 Tk_EventProc に合致する引数と結果を有するべきである: Proc should have arguments and result that match the type Tk_EventProc:

    typedef void Tk_EventProc(
            ClientData clientData,
            XEvent *eventPtr);

proc への clientData 假引数は呼戻しが作成された時に Tk_CreateEventHandler に与えられた clientData 引数の複写である｡典型的には､ clientData は行事が発生した窓に関する応用譜固有の情報を含む構造を指す｡ EventPtr は X の行事へのポインターであり､それは Tk_CreateEventHandler への mask 引数内に指定されたものの内の一つである｡ The clientData parameter to proc is a copy of the clientData argument given to Tk_CreateEventHandler when the callback was created. Typically, clientData points to a data structure containing application-specific information about the window in which the event occurred. EventPtr is a pointer to the X event, which will be one of the ones specified in the mask argument to Tk_CreateEventHandler.

Tk_DeleteEventHandler は以前に作成された行事処理子を削除する為に呼ぶことができる: それは tkwin と結合し且つ mask, proc, and clientData 引数と合致する様な､最初に見付った処理子を削除する｡もしその様な処理子が実在しない場合は Tk_HandleEvent は何もせずに帰る｡ Tk は運営しているが､同じ mask, proc と clientData 引数によって多数の呼戻しを有することは好ましくない｡窓が削除された時､全ての処理子は自動的に削除される; この場合､ Tk_DeleteEventHandler を呼ぶ必要はない｡ Tk_DeleteEventHandler may be called to delete a previously-created event handler: it deletes the first handler it finds that is associated with tkwin and matches the mask, proc, and clientData arguments. If no such handler exists, then Tk_HandleEvent returns without doing anything. Although Tk supports it, it's probably a bad idea to have more than one callback with the same mask, proc, and clientData arguments. When a window is deleted all of its handlers will be deleted automatically; in this case there is no need to call Tk_DeleteEventHandler.

もし同じ窓の上の同じ X 行事の為に複数の処理子が宣言された場合､処理子はそれが作成された順序で起動される｡ If multiple handlers are declared for the same type of X event on the same window, then the handlers will be invoked in the order they were created.

### KEYWORDS

bind, callback, event, handler
Copyright © 1990 The Regents of the University of California.
Copyright © 1994-1996 Sun Microsystems, Inc.