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

### 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_CreateWindow, Tk_CreateWindowFromPath, Tk_DestroyWindow, Tk_MakeWindowExist — 窓の創生と削除 create or delete window
  SYNOPSIS
    #include <tk.h>
    Tk_Window
    Tk_CreateWindow(interp, parent, name, topLevScreen)
    Tk_Window
    Tk_CreateAnonymousWindow(interp, parent, topLevScreen)
    Tk_Window
    Tk_CreateWindowFromPath(interp, tkwin, pathName, topLevScreen)
    Tk_DestroyWindow(tkwin)
    Tk_MakeWindowExist(tkwin)
  引数 ARGUMENTS
    Tcl_Interp *interp (出力out)
    Tk_Window parent (入力in)
    const char *name (入力in)
    const char *topLevScreen (入力in)
    Tk_Window tkwin (入力in)
    const char *pathName (入力in)
  説明 DESCRIPTION
  KEYWORDS

### NAME

Tk_CreateWindow, Tk_CreateWindowFromPath, Tk_DestroyWindow, Tk_MakeWindowExist — 窓の創生と削除 create or delete window

### SYNOPSIS

#include <tk.h>
Tk_Window
Tk_CreateWindow(interp, parent, name, topLevScreen)
Tk_Window
Tk_CreateAnonymousWindow(interp, parent, topLevScreen)
Tk_Window
Tk_CreateWindowFromPath(interp, tkwin, pathName, topLevScreen)
Tk_DestroyWindow(tkwin)
Tk_MakeWindowExist(tkwin)

### 引数 ARGUMENTS

Tcl_Interp *interp (出力out)
  不都合を報告する為の解釈実行機能｡もし不都合が生じない場合､*interpは修正されない｡　 Tcl interpreter to use for error reporting. If no error occurs, then *interp is not modified.

Tk_Window parent (入力in)
  新しい窓の論理的親として仕えるための窓についての字句｡ Token for the window that is to serve as the logical parent of the new window.

const char *name (入力in)
  この窓の為に使う名前｡同じ親の全ての子供の間で重複があってはならない｡ Name to use for this window. Must be unique among all children of the same parent.

const char *topLevScreen (入力in)
  screenName と同じ書式を有する｡もしヌルであれば､内部の窓として新しい窓が生成される｡もし非ヌルであれば､topLevScreen画面上に新しい窓が頂上水準の窓として生成される｡もしtopLevScreenが空文字列 (“”) の場合､新しい窓は親の画面の頂上水準の窓として生成される｡　　 Has same format as screenName. If NULL, then new window is created as an internal window. If non-NULL, new window is created as a top-level window on screen topLevScreen. If topLevScreen is an empty string (“”) then new window is created as top-level window of parent's screen.

Tk_Window tkwin (入力in)
  窓の為の字句 Token for window.

const char *pathName (入力in)
  応用譜内部の経路名として定義された新しい窓の名前(譬ば .a.b.c)｡　 Name of new window, specified as path name within application (e.g. .a.b.c).

### 説明 DESCRIPTION

手続函数 Tk_CreateWindow, Tk_CreateAnonymousWindow, and Tk_CreateWindowFromPath は Tk-基本の応用譜内で使う新しい窓を作る為に使われる｡それぞれの手続函数は字句を返す､それは Tk 外部函数への別の呼出しの中の窓の操作に使うことができる｡もし窓が成功裏に作成できない場合 NULL が返され､解釈実行機能 interp の結果は不都合伝言文を保有する為に修正される｡ The procedures Tk_CreateWindow, Tk_CreateAnonymousWindow, and Tk_CreateWindowFromPath are used to create new windows for use in Tk-based applications. Each of the procedures returns a token that can be used to manipulate the window in other calls to the Tk library. If the window could not be created successfully, then NULL is returned and the result of interpreter interp is modified to hold an error message.

Tk は２つの異なる種類の窓を運営する: 内部窓と頂上水準の窓である｡内部窓は Tk 応用譜の内部の窓であり､譬えば摺動盤､指示項目聚､釦｡頂上水準の窓は画面の根本窓の子供として作成される､内部窓としてよりも､何かの既存の主窓の論理的な部分である｡譬えば頂上水準窓は出現指示項目聚と対話箱である｡ Tk supports two different kinds of windows: internal windows and top-level windows. An internal window is an interior window of a Tk application, such as a scrollbar or menu bar or button. A top-level window is one that is created as a child of a screen's root window, rather than as an interior window, but which is logically part of some existing main window. Examples of top-level windows are pop-up menus and dialog boxes.

新しい窓は Tk_CreateWindow の呼出しによって作成される｡もし topLevScreen 引数が NULL,の場合､新しい窓は内部窓である｡もし topLevScreen が非 NULL,の場合､新しい窓は頂上水準の窓である: topLevScreen は画面の名前を指し示し､新しい窓はtopLevScreen の根本窓の子供として作成される｡どちらの場合も Tk は新しい窓を parent の論理的子供であると看做す: 新しい窓の経路の名前はこの事実を反映することになる､指示項目は新しい窓について､この仮定の下に指定されるかもしれない｡違いは頂上水準の窓のための新しい X 窓は parent の X 窓の子供にはならない｡譬えば､抽斗式指示項目聚の親は釦に似た窓でありその起動に使われる､それは 順番に､指示項目帯窓の子供になるであろう｡対話箱は応用譜の主要窓をその親として有するかもしれない｡ New windows may be created by calling Tk_CreateWindow. If the topLevScreen argument is NULL, then the new window will be an internal window. If topLevScreen is non-NULL, then the new window will be a top-level window: topLevScreen indicates the name of a screen and the new window will be created as a child of the root window of topLevScreen. In either case Tk will consider the new window to be the logical child of parent: the new window's path name will reflect this fact, options may be specified for the new window under this assumption, and so on. The only difference is that new X window for a top-level window will not be a child of parent's X window. For example, a pull-down menu's parent would be the button-like window used to invoke it, which would in turn be a child of the menu bar window. A dialog box might have the application's main window as its parent.

Tk_CreateAnonymousWindow は Tk_CreateWindow とは異なり､その中で名前のない窓を作成する｡この窓は C 相互作用機能を使ってのみ操作でき､ Tcl 記述譜には可視ではない｡両方の内部の窓と頂上水準の窓は Tk_CreateAnonymousWindow によって作成できる｡ Tk_CreateAnonymousWindow differs from Tk_CreateWindow in that it creates an unnamed window. This window will be manipulatable only using C interfaces, and will not be visible to Tcl scripts. Both interior windows and top-level windows may be created with Tk_CreateAnonymousWindow.

Tk_CreateWindowFromPath は新しい窓を指定する別の方法を提供する｡ Tk_CreateWindowFromPath 内で新しい窓は､目的の応用譜内のどれかの窓(tkwin)に就いての字句と､新しい窓への経路名と､によって指定される｡ Tk_CreateWindow と同じ効果が生成され､ topLevScreen の値次第で､頂上水準と内部の両方の窓が作成されることを許容する｡ Tk_CreateWindowFromPath への呼出しでは､ Tk_CreateWindow への呼出しと同じ様に､呼出した時に､新しい窓の親が実在しなければならないし､新しい窓が実在してはならない｡ Tk_CreateWindowFromPath offers an alternate way of specifying new windows. In Tk_CreateWindowFromPath the new window is specified with a token for any window in the target application (tkwin), plus a path name for the new window. It produces the same effect as Tk_CreateWindow and allows both top-level and internal windows to be created, depending on the value of topLevScreen. In calls to Tk_CreateWindowFromPath, as in calls to Tk_CreateWindow, the parent of the new window must exist at the time of the call, but the new window must not already exist.

窓作成手続函数は実際は窓を作成する為に Xへの命令を発生はしない｡その代り､窓に結合した局部データ構造を作成し窓の作成を遅延させる｡窓は実際初めの Tk_MapWindow への呼出しによって作成される｡遅延された窓の作成は窓の種々の外観が(譬えばその寸法､背景色､等)その作成後に X 中央集中処理装置の負担なしに修正される事をを許容する｡窓が最終的に対応付けされる時に､全ての窓の属性は窓を作成している間に設定することが可能である｡ The window creation procedures do not actually issue the command to X to create a window. Instead, they create a local data structure associated with the window and defer the creation of the X window. The window will actually be created by the first call to Tk_MapWindow. Deferred window creation allows various aspects of the window (such as its size, background color, etc.) to be modified after its creation without incurring any overhead in the X server. When the window is finally mapped all of the window attributes can be set while creating the window.

窓作成手続函数により返された値は窓に関する X の字句ではない(それは不可能､ X は未だ窓を作成するよう求められていない)｡代りに､窓に関する Tk の局在データ構造への字句である｡大部分の Tk 外部函数の手続函数は X 識別子ではなく Tk_Window 字句を取る｡実際の X 窓識別子は Tk_WindowId マクロを使って局部データ構造から取出すことができる; 詳細は取扱説明書の Tk_WindowId の見出しを参照されたい｡ The value returned by a window-creation procedure is not the X token for the window (it cannot be, since X has not been asked to create the window yet). Instead, it is a token for Tk's local data structure for the window. Most of the Tk library procedures take Tk_Window tokens, rather than X identifiers. The actual X window identifier can be retrieved from the local data structure using the Tk_WindowId macro; see the manual entry for Tk_WindowId for details.

Tk_DestroyWindow は窓とそれに結合した Tk_CreateEventHandler によって作成されたどの行事処理子をも含む全てのデータ構造を削除する｡更に Tk_DestroyWindow は tkwin のどの子供も再起的に削除する(そこでは､子供は Tk の感覚で定義され､ parent として与えられた窓と共に作成された全ての窓を含む)｡もし tkwin が内部の窓であると､破壊行事に関係する行事処理子はすぐさま起動される｡もし tkwin が頂上水準の窓か主窓の場合､行事処理子は後に､つまり､ X が要求を見られそれに関する行事から返った後に起動される｡ Tk_DestroyWindow deletes a window and all the data structures associated with it, including any event handlers created with Tk_CreateEventHandler. In addition, Tk_DestroyWindow will delete any children of tkwin recursively (where children are defined in the Tk sense, consisting of all windows that were created with the given window as parent). If tkwin is an internal window, then event handlers interested in destroy events are invoked immediately. If tkwin is a top-level or main window, then the event handlers will be invoked later, after X has seen the request and returned an event for it.

もし窓が作成されたが､対応付けされていないので X 窓が実在しない場合､ Tk_MakeWindowExist の呼出しにより X 窓を強制的に作成することが可能である｡この手続函数は tkwin により与えられた窓を実在させる為に X 命令を発行する｡ If a window has been created but has not been mapped, so no X window exists, it is possible to force the creation of the X window by calling Tk_MakeWindowExist. This procedure issues the X commands to instantiate the window given by tkwin.

### KEYWORDS

create, deferred creation, destroy, display, internal window, screen, top-level window, window
Copyright © 1990 The Regents of the University of California.
Copyright © 1994-1996 Sun Microsystems, Inc.