1 \section{\class{wxFrame
}}\label{wxframe
}
3 A frame is a window whose size and position can (usually) be changed by the user. It usually has
4 thick borders and a title bar, and can optionally contain a menu bar, toolbar and
5 status bar. A frame can contain any window that is not a frame or dialog.
7 A frame that has a status bar and toolbar created via the CreateStatusBar/CreateToolBar functions
8 manages these windows, and adjusts the value returned by GetClientSize to reflect
9 the remaining size available to application windows.
11 \wxheading{Derived from
}
13 \helpref{wxWindow
}{wxwindow
}\\
14 \helpref{wxEvtHandler
}{wxevthandler
}\\
15 \helpref{wxObject
}{wxobject
}
17 \wxheading{Include files
}
21 \wxheading{Window styles
}
24 \begin{twocollist
}\itemsep=
0pt
25 \twocolitem{\windowstyle{wxICONIZE
}}{Display the frame iconized (minimized). Windows only.
}
26 \twocolitem{\windowstyle{wxCAPTION
}}{Puts a caption on the frame.
}
27 \twocolitem{\windowstyle{wxDEFAULT
\_FRAME\_STYLE}}{Defined as
{\bf wxMINIMIZE
\_BOX \pipe wxMAXIMIZE
\_BOX \pipe wxTHICK
\_FRAME \pipe wxSYSTEM
\_MENU \pipe wxCAPTION
}.
}
28 \twocolitem{\windowstyle{wxMINIMIZE
}}{Identical to
{\bf wxICONIZE
}. Windows only.
}
29 \twocolitem{\windowstyle{wxMINIMIZE
\_BOX}}{Displays a minimize box on the frame.
}
30 \twocolitem{\windowstyle{wxMAXIMIZE
}}{Displays the frame maximized. Windows only.
}
31 \twocolitem{\windowstyle{wxMAXIMIZE
\_BOX}}{Displays a maximize box on the frame.
}
32 \twocolitem{\windowstyle{wxSTAY
\_ON\_TOP}}{Stay on top of other windows. Windows only.
}
33 \twocolitem{\windowstyle{wxSYSTEM
\_MENU}}{Displays a system menu.
}
34 \twocolitem{\windowstyle{wxTHICK
\_FRAME}}{Displays a thick frame around the window. Windows and Motif only.
}
35 \twocolitem{\windowstyle{wxSIMPLE
\_BORDER}}{Displays no border or decorations. GTK and Windows only (?).
}
36 \twocolitem{\windowstyle{wxRESIZE
\_BORDER}}{Displays a resizeable border around the window (Unix only).
}
37 \twocolitem{\windowstyle{wxFRAME
\_FLOAT\_ON\_PARENT}}{Causes the frame to be above the parent window in the
38 z-order and not shown in the taskbar. Without this style, frames are created as top-level windows that may be obscured by
39 the parent window, and frame titles are shown in the taskbar. Windows only.
}
40 \twocolitem{\windowstyle{wxFRAME
\_TOOL\_WINDOW}}Causes a frame with a small titlebar to be created;
41 the frame title does not appear in the taskbar. Windows only.
}
44 See also
\helpref{window styles overview
}{windowstyles
}.
48 An application should normally define an
\helpref{OnCloseWindow
}{wxwindowonclosewindow
} handler for the
49 frame to respond to system close events, for example so that related data and subwindows can be cleaned up.
53 \helpref{wxMDIParentFrame
}{wxmdiparentframe
},
\helpref{wxMDIChildFrame
}{wxmdichildframe
},
\rtfsp
54 \helpref{wxMiniFrame
}{wxminiframe
},
\helpref{wxDialog
}{wxdialog
}
56 \latexignore{\rtfignore{\wxheading{Members
}}}
58 \membersection{wxFrame::wxFrame
}\label{wxframeconstr
}
60 \func{}{wxFrame
}{\void}
64 \func{}{wxFrame
}{\param{wxWindow*
}{parent
},
\param{wxWindowID
}{id
},
\rtfsp
65 \param{const wxString\&
}{title
},
\param{const wxPoint\&
}{ pos = wxDefaultPosition
},
\rtfsp
66 \param{const wxSize\&
}{ size = wxDefaultSize
},
\param{long
}{ style = wxDEFAULT
\_FRAME\_STYLE},
\rtfsp
67 \param{const wxString\&
}{name = ``frame"
}}
69 Constructor, creating the window.
71 \wxheading{Parameters
}
73 \docparam{parent
}{The window parent. This may be NULL. If it is non-NULL, the frame will
74 always be displayed on top of the parent window on Windows.
}
76 \docparam{id
}{The window identifier. It may take a value of -
1 to indicate a default value.
}
78 \docparam{title
}{The caption to be displayed on the frame's title bar.
}
80 \docparam{pos
}{The window position. A value of (-
1, -
1) indicates a default position, chosen by
81 either the windowing system or wxWindows, depending on platform.
}
83 \docparam{size
}{The window size. A value of (-
1, -
1) indicates a default size, chosen by
84 either the windowing system or wxWindows, depending on platform.
}
86 \docparam{style
}{The window style. See
\helpref{wxFrame
}{wxframe
}.
}
88 \docparam{name
}{The name of the window. This parameter is used to associate a name with the item,
89 allowing the application user to set Motif resource values for
94 For Motif, MWM (the Motif Window Manager) should be running for any window styles to work
95 (otherwise all styles take effect).
99 \helpref{wxFrame::Create
}{wxframecreate
}
101 \membersection{wxFrame::
\destruct{wxFrame
}}
103 \func{void
}{\destruct{wxFrame
}}{\void}
105 Destructor. Destroys all child windows and menu bar if present.
107 \membersection{wxFrame::Centre
}\label{wxframecentre
}
109 \func{void
}{Centre
}{\param{int
}{ direction = wxBOTH
}}
111 Centres the frame on the display.
113 \wxheading{Parameters
}
115 \docparam{direction
}{The parameter may be
{\tt wxHORIZONTAL
},
{\tt wxVERTICAL
} or
{\tt wxBOTH
}.
}
117 \membersection{wxFrame::Command
}\label{wxframecommand
}
119 \func{void
}{Command
}{\param{int
}{id
}}
121 Simulate a menu command.
123 \wxheading{Parameters
}
125 \docparam{id
}{The identifier for a menu item.
}
127 \membersection{wxFrame::Create
}\label{wxframecreate
}
129 \func{bool
}{Create
}{\param{wxWindow*
}{parent
},
\param{wxWindowID
}{id
},
\rtfsp
130 \param{const wxString\&
}{title
},
\param{const wxPoint\&
}{ pos = wxDefaultPosition
},
\rtfsp
131 \param{const wxSize\&
}{ size = wxDefaultSize
},
\param{long
}{ style = wxDEFAULT
\_FRAME\_STYLE},
\rtfsp
132 \param{const wxString\&
}{name = ``frame"
}}
134 Used in two-step frame construction. See
\helpref{wxFrame::wxFrame
}{wxframeconstr
}\rtfsp
137 \membersection{wxFrame::CreateStatusBar
}\label{wxframecreatestatusbar
}
139 \func{virtual wxStatusBar*
}{CreateStatusBar
}{\param{int
}{ number =
1},
140 \param{long
}{ style =
0},
141 \param{wxWindowID
}{ id = -
1},
\param{const wxString\&
}{ name = "statusBar"
}}
143 Creates a status bar at the bottom of the frame.
145 \wxheading{Parameters
}
147 \docparam{number
}{The number of fields to create. Specify a
148 value greater than
1 to create a multi-field status bar.
}
150 \docparam{style
}{The status bar style. See
\helpref{wxStatusBar
}{wxstatusbar
} for a list
153 \docparam{id
}{The status bar window identifier. If -
1, an identifier will be chosen by
156 \docparam{name
}{The status bar window name.
}
158 \wxheading{Return value
}
160 A pointer to the the status bar if it was created successfully, NULL otherwise.
164 The width of the status bar is the whole width of the frame (adjusted automatically when
165 resizing), and the height and text size are chosen by the host windowing system.
167 By default, the status bar is an instance of wxStatusBar. To use a different class,
168 override
\helpref{wxFrame::OnCreateStatusBar
}{wxframeoncreatestatusbar
}.
170 Note that you can put controls and other windows on the status bar if you wish.
174 \helpref{wxFrame::SetStatusText
}{wxframesetstatustext
},
\rtfsp
175 \helpref{wxFrame::OnCreateStatusBar
}{wxframeoncreatestatusbar
},
\rtfsp
176 \helpref{wxFrame::GetStatusBar
}{wxframegetstatusbar
}
178 \membersection{wxFrame::CreateToolBar
}\label{wxframecreatetoolbar
}
180 \func{virtual wxToolBar*
}{CreateToolBar
}{\param{long
}{ style = wxNO
\_BORDER \pipe wxTB
\_HORIZONTAL},
181 \param{wxWindowID
}{ id = -
1},
\param{const wxString\&
}{ name = "toolBar"
}}
183 Creates a toolbar at the top or left of the frame.
185 \wxheading{Parameters
}
187 \docparam{style
}{The toolbar style. See
\helpref{wxToolBar
}{wxtoolbar
} for a list
190 \docparam{id
}{The toolbar window identifier. If -
1, an identifier will be chosen by
193 \docparam{name
}{The toolbar window name.
}
195 \wxheading{Return value
}
197 A pointer to the the toolbar if it was created successfully, NULL otherwise.
201 By default, the toolbar is an instance of wxToolBar (which is defined to be
202 a suitable toolbar class on each platform, such as wxToolBar95). To use a different class,
203 override
\helpref{wxFrame::OnCreateToolBar
}{wxframeoncreatetoolbar
}.
205 When a toolbar has been created with this function, or made known to the frame
206 with
\helpref{wxFrame::SetToolBar
}{wxframesettoolbar
}, the frame will manage the toolbar
207 position and adjust the return value from
\helpref{wxWindow::GetClientSize
}{wxwindowgetclientsize
} to
208 reflect the available space for application windows.
212 \helpref{wxFrame::CreateStatusBar
}{wxframecreatestatusbar
},
\rtfsp
213 \helpref{wxFrame::OnCreateToolBar
}{wxframeoncreatetoolbar
},
\rtfsp
214 \helpref{wxFrame::SetToolBar
}{wxframesettoolbar
},
\rtfsp
215 \helpref{wxFrame::GetToolBar
}{wxframegettoolbar
}
217 \membersection{wxFrame::GetMenuBar
}\label{wxframegetmenubar
}
219 \constfunc{wxMenuBar*
}{GetMenuBar
}{\void}
221 Returns a pointer to the menubar currently associated with the frame (if any).
225 \helpref{wxFrame::SetMenuBar
}{wxframesetmenubar
},
\helpref{wxMenuBar
}{wxmenubar
},
\helpref{wxMenu
}{wxmenu
}
227 \membersection{wxFrame::GetStatusBar
}\label{wxframegetstatusbar
}
229 \func{wxStatusBar*
}{GetStatusBar
}{\void}
231 Returns a pointer to the status bar currently associated with the frame (if any).
235 \helpref{wxFrame::CreateStatusBar
}{wxframecreatestatusbar
},
\helpref{wxStatusBar
}{wxstatusbar
}
237 \membersection{wxFrame::GetTitle
}\label{wxframegettitle
}
239 \func{wxString\&
}{GetTitle
}{\void}
241 Gets a temporary pointer to the frame title. See
242 \helpref{wxFrame::SetTitle
}{wxframesettitle
}.
244 \membersection{wxFrame::GetToolBar
}\label{wxframegettoolbar
}
246 \func{wxToolBar*
}{GetToolBar
}{\void}
248 Returns a pointer to the toolbar currently associated with the frame (if any).
252 \helpref{wxFrame::CreateToolBar
}{wxframecreatetoolbar
},
\helpref{wxToolBar
}{wxtoolbar
},
\rtfsp
253 \helpref{wxFrame::SetToolBar
}{wxframesettoolbar
}
255 \membersection{wxFrame::Iconize
}\label{wxframeiconize
}
257 \func{void
}{Iconize
}{\param{const bool
}{ iconize
}}
259 Iconizes or restores the frame. Windows only.
261 \wxheading{Parameters
}
263 \docparam{izonize
}{If TRUE, iconizes the frame; if FALSE, shows and restores it.
}
267 \helpref{wxFrame::IsIconized
}{wxframeisiconized
},
\helpref{wxFrame::Maximize
}{wxframemaximize
}.
269 \membersection{wxFrame::IsIconized
}\label{wxframeisiconized
}
271 \constfunc{bool
}{IsIconized
}{\void}
273 Returns TRUE if the frame is iconized. Windows only.
275 \membersection{wxFrame::IsMaximized
}\label{wxframeismaximized
}
277 \constfunc{bool
}{IsMaximized
}{\void}
279 Returns TRUE if the frame is maximized.
281 \membersection{wxFrame::Maximize
}\label{wxframemaximize
}
283 \func{void
}{Maximize
}{\param{const bool
}{maximize
}}
285 Maximizes or restores the frame.
287 \wxheading{Parameters
}
289 \docparam{maximize
}{If TRUE, maximizes the frame, otherwise it restores it
}.
293 This function only works under Windows.
297 \helpref{wxFrame::Iconize
}{wxframeiconize
}
299 \membersection{wxFrame::OnActivate
}
301 \func{void
}{OnActivate
}{\param{wxActivateEvent\&
}{ event
}}
303 Called when a window is activated or deactivated (MS Windows
304 only). See also
\helpref{wxActivateEvent
}{wxactivateevent
}.
306 \membersection{wxFrame::OnCreateStatusBar
}\label{wxframeoncreatestatusbar
}
308 \func{virtual wxStatusBar*
}{OnCreateStatusBar
}{\param{int
}{number
},
309 \param{long
}{ style
},
310 \param{wxWindowID
}{ id
},
\param{const wxString\&
}{ name
}}
312 Virtual function called when a status bar is requested by
\helpref{wxFrame::CreateStatusBar
}{wxframecreatestatusbar
}.
314 \wxheading{Parameters
}
316 \docparam{number
}{The number of fields to create.
}
318 \docparam{style
}{The window style. See
\helpref{wxStatusBar
}{wxstatusbar
} for a list
321 \docparam{id
}{The window identifier. If -
1, an identifier will be chosen by
324 \docparam{name
}{The window name.
}
326 \wxheading{Return value
}
332 An application can override this function to return a different kind of status bar. The default
333 implementation returns an instance of
\helpref{wxStatusBar
}{wxstatusbar
}.
337 \helpref{wxFrame::CreateStatusBar
}{wxframecreatestatusbar
},
\helpref{wxStatusBar
}{wxstatusbar
}.
339 \membersection{wxFrame::OnCreateToolBar
}\label{wxframeoncreatetoolbar
}
341 \func{virtual wxToolBar*
}{OnCreateToolBar
}{\param{long
}{ style
},
342 \param{wxWindowID
}{ id
},
\param{const wxString\&
}{ name
}}
344 Virtual function called when a toolbar is requested by
\helpref{wxFrame::CreateToolBar
}{wxframecreatetoolbar
}.
346 \wxheading{Parameters
}
348 \docparam{style
}{The toolbar style. See
\helpref{wxToolBar
}{wxtoolbar
} for a list
351 \docparam{id
}{The toolbar window identifier. If -
1, an identifier will be chosen by
354 \docparam{name
}{The toolbar window name.
}
356 \wxheading{Return value
}
362 An application can override this function to return a different kind of toolbar. The default
363 implementation returns an instance of
\helpref{wxToolBar
}{wxtoolbar
}.
367 \helpref{wxFrame::CreateToolBar
}{wxframecreatetoolbar
},
\helpref{wxToolBar
}{wxtoolbar
}.
369 \membersection{wxFrame::OnMenuCommand
}\label{wxframeonmenucommand
}
371 \func{void
}{OnMenuCommand
}{\param{wxCommandEvent\&
}{ event
}}
373 See
\helpref{wxWindow::OnMenuCommand
}{wxwindowonmenucommand
}.
375 \membersection{wxFrame::OnMenuHighlight
}\label{wxframeonmenuhighlight
}
377 \func{void
}{OnMenuHighlight
}{\param{wxMenuEvent\&
}{ event
}}
379 See
\helpref{wxWindow::OnMenuHighlight
}{wxwindowonmenuhighlight
}.
381 \membersection{wxFrame::OnSize
}\label{wxframeonsize
}
383 \func{void
}{OnSize
}{\param{wxSizeEvent\&
}{event
}}
385 See
\helpref{wxWindow::OnSize
}{wxwindowonsize
}.
387 The default
{\bf wxFrame::OnSize
} implementation looks for a single subwindow,
388 and if one is found, resizes it to fit
389 inside the frame. Override this member if more complex behaviour
390 is required (for example, if there are several subwindows).
392 \membersection{wxFrame::SetIcon
}\label{wxframeseticon
}
394 \func{void
}{SetIcon
}{\param{const wxIcon\&
}{icon
}}
396 Sets the icon for this frame.
398 \wxheading{Parameters
}
400 \docparam{icon
}{The icon to associate with this frame.
}
404 The frame takes a `copy' of
{\it icon
}, but since it uses reference
405 counting, the copy is very quick. It is safe to delete
{\it icon
} after
406 calling this function.
408 Under Windows, instead of using
{\bf SetIcon
}, you can add the
409 following lines to your MS Windows resource file:
412 wxSTD_MDIPARENTFRAME ICON icon1.ico
413 wxSTD_MDICHILDFRAME ICON icon2.ico
414 wxSTD_FRAME ICON icon3.ico
417 where icon1.ico will be used for the MDI parent frame, icon2.ico
418 will be used for MDI child frames, and icon3.ico will be used for
421 If these icons are not supplied, and
{\bf SetIcon
} is not called either,
422 then the following defaults apply if you have included wx.rc.
425 wxDEFAULT_FRAME ICON std.ico
426 wxDEFAULT_MDIPARENTFRAME ICON mdi.ico
427 wxDEFAULT_MDICHILDFRAME ICON child.ico
430 You can replace std.ico, mdi.ico and child.ico with your own defaults
431 for all your wxWindows application. Currently they show the same icon.
433 {\it Note:
} a wxWindows application linked with subsystem equal to
4.0
434 (i.e. marked as a Windows
95 application) doesn't respond properly
435 to wxFrame::SetIcon. To work around this until a solution is found,
436 mark your program as a
3.5 application. This will also ensure
437 that Windows provides small icons for the application automatically.
439 See also
\helpref{wxIcon
}{wxicon
}.
441 \membersection{wxFrame::SetMenuBar
}\label{wxframesetmenubar
}
443 \func{void
}{SetMenuBar
}{\param{wxMenuBar*
}{menuBar
}}
445 Tells the frame to show the given menu bar.
447 \wxheading{Parameters
}
449 \docparam{menuBar
}{The menu bar to associate with the frame.
}
453 If the frame is destroyed, the
454 menu bar and its menus will be destroyed also, so do not delete the menu
455 bar explicitly (except by resetting the frame's menu bar to another
458 Under Windows, a call to
\helpref{wxFrame::OnSize
}{wxframeonsize
} is generated, so be sure to initialize
459 data members properly before calling
{\bf SetMenuBar
}.
461 Note that it is not possible to call this function twice for the same frame object.
465 \helpref{wxFrame::GetMenuBar
}{wxframegetmenubar
},
\helpref{wxMenuBar
}{wxmenubar
},
\helpref{wxMenu
}{wxmenu
}.
467 \membersection{wxFrame::SetStatusBar
}\label{wxframesetstatusbar
}
469 \func{void
}{SetStatusBar
}{\param{wxStatusBar*
}{ statusBar
}}
471 Associates a status bar with the frame.
475 \helpref{wxFrame::CreateStatusBar
}{wxframecreatestatusbar
},
\helpref{wxStatusBar
}{wxstatusbar
},
\rtfsp
476 \helpref{wxFrame::GetStatusBar
}{wxframegetstatusbar
}
478 \membersection{wxFrame::SetStatusText
}\label{wxframesetstatustext
}
480 \func{virtual void
}{SetStatusText
}{\param{const wxString\&
}{ text
},
\param{int
}{ number =
0}}
482 Sets the status bar text and redraws the status bar.
484 \wxheading{Parameters
}
486 \docparam{text
}{The text for the status field.
}
488 \docparam{number
}{The status field (starting from zero).
}
492 Use an empty string to clear the status bar.
496 \helpref{wxFrame::CreateStatusBar
}{wxframecreatestatusbar
},
\helpref{wxStatusBar
}{wxstatusbar
}
498 \membersection{wxFrame::SetStatusWidths
}\label{wxframesetstatuswidths
}
500 \func{virtual void
}{SetStatusWidths
}{\param{int
}{ n
},
\param{int *
}{widths
}}
502 Sets the widths of the fields in the status bar.
504 \wxheading{Parameters
}
506 \wxheading{n
}{The number of fields in the status bar. It must be the
507 same used in
\helpref{CreateStatusBar
}{wxframecreatestatusbar
}.
}
509 \docparam{widths
}{Must contain an array of
{\it n
} integers, each of which is a status field width
510 in pixels. A value of -
1 indicates that the field is variable width; at least one
511 field must be -
1. You should delete this array after calling
{\bf SetStatusWidths
}.
}
515 The widths of the variable fields are calculated from the total width of all fields,
516 minus the sum of widths of the non-variable fields, divided by the number of
519 \pythonnote{Only a single parameter is required, a Python list of
523 \membersection{wxFrame::SetToolBar
}\label{wxframesettoolbar
}
525 \func{void
}{SetToolBar
}{\param{wxToolBar*
}{ toolBar
}}
527 Associates a toolbar with the frame.
531 \helpref{wxFrame::CreateToolBar
}{wxframecreatetoolbar
},
\helpref{wxToolBar
}{wxtoolbar
},
\rtfsp
532 \helpref{wxFrame::GetToolBar
}{wxframegettoolbar
}
534 \membersection{wxFrame::SetTitle
}\label{wxframesettitle
}
536 \func{virtual void
}{SetTitle
}{\param{const wxString\&
}{ title
}}
538 Sets the frame title.
540 \wxheading{Parameters
}
542 \docparam{title
}{The frame title.
}
546 \helpref{wxFrame::GetTitle
}{wxframegettitle
}