XDestroyWindow, XDestroySubwindows - destroy windows
int XDestroyWindow(Display *display, Window
  w);
int XDestroySubwindows(Display *display, Window
    w);
  - display
- Specifies the connection to the X server.
- w
- Specifies the window.
The XDestroyWindow function destroys the specified window as well as all
  of its subwindows and causes the X server to generate a DestroyNotify
  event for each window. The window should never be referenced again. If the
  window specified by the w argument is mapped, it is unmapped automatically.
  The ordering of the DestroyNotify events is such that for any given
  window being destroyed, DestroyNotify is generated on any inferiors of
  the window before being generated on the window itself. The ordering among
  siblings and across subhierarchies is not otherwise constrained. If the window
  you specified is a root window, no windows are destroyed. Destroying a mapped
  window will generate Expose events on other windows that were obscured
  by the window being destroyed.XDestroyWindow can generate a BadWindow error.
The XDestroySubwindows function destroys all inferior
    windows of the specified window, in bottom-to-top stacking order. It causes
    the X server to generate a DestroyNotify event for each window. If
    any mapped subwindows were actually destroyed, XDestroySubwindows
    causes the X server to generate Expose events on the specified
    window. This is much more efficient than deleting many windows one at a time
    because much of the work need be performed only once for all of the windows,
    rather than for each window. The subwindows should never be referenced
    again.
XDestroySubwindows can generate a BadWindow
  error.
  - BadWindow
- A value for a Window argument does not name a defined Window.
XChangeWindowAttributes(3), XConfigureWindow(3), XCreateWindow(3),
  XMapWindow(3), XRaiseWindow(3), XUnmapWindow(3)
Xlib - C Language X Interface