A panel is a window on which controls are placed. It is usually placed within a frame. Its main feature over its parent class wxWindow is code for handling child windows and TAB traversal, which is implemented natively if possible (e.g. in wxGTK) or by wxWidgets itself otherwise.
Note: Tab traversal is implemented through an otherwise undocumented intermediate wxControlContainer class from which any class can derive in addition to the normal wxWindow base class. Please see and to find out how this is achieved.
Note: if not all characters are being intercepted by your OnKeyDown or OnChar handler, it may be because you are using the wxTAB_TRAVERSAL style, which grabs some keypresses for use by child controls.
Remark: By default, a panel has the same colouring as a dialog.
wxWidgets docs: wxPanel
Event types emitted from this class: navigation_key
new() -> wxPanel()
new(Parent) -> wxPanel()
new(Parent, Options :: [Option]) -> wxPanel()
See: Create() (not implemented in wx)
destroy(This :: wxPanel()) -> ok
Deletes any child windows before deleting the physical window.
initDialog(This) -> ok
setFocusIgnoringChildren(This) -> ok
In contrast to wxWindow:setFocus/1 (see above) this will set the focus to the panel even if there are child windows in the panel.
This is only rarely needed.