]> git.saurik.com Git - wxWidgets.git/blame - docs/latex/wx/mdi.tex
documentation for window ids allocation and wxIdManager (patch 1870570)
[wxWidgets.git] / docs / latex / wx / mdi.tex
CommitLineData
a660d684
KB
1\section{\class{wxMDIChildFrame}}\label{wxmdichildframe}
2
3An MDI child frame is a frame that can only exist on a \helpref{wxMDIClientWindow}{wxmdiclientwindow},
4which is itself a child of \helpref{wxMDIParentFrame}{wxmdiparentframe}.
5
6\wxheading{Derived from}
7
8\helpref{wxFrame}{wxframe}\\
7376079d 9\helpref{wxTopLevelWindow}{wxtoplevelwindow}\\
a660d684
KB
10\helpref{wxWindow}{wxwindow}\\
11\helpref{wxEvtHandler}{wxevthandler}\\
12\helpref{wxObject}{wxobject}
13
954b8ae6
JS
14\wxheading{Include files}
15
16<wx/mdi.h>
17
a7af285d
VZ
18\wxheading{Library}
19
20\helpref{wxCore}{librarieslist}
21
a660d684
KB
22\wxheading{Window styles}
23
24\twocolwidtha{5cm}
25\begin{twocollist}\itemsep=0pt
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{wxICONIZE}}{Display the frame iconized (minimized) (Windows only).}
29\twocolitem{\windowstyle{wxMAXIMIZE}}{Displays the frame maximized (Windows only).}
30\twocolitem{\windowstyle{wxMAXIMIZE\_BOX}}{Displays a maximize box on the frame (Windows and Motif only).}
31\twocolitem{\windowstyle{wxMINIMIZE}}{Identical to {\bf wxICONIZE}.}
32\twocolitem{\windowstyle{wxMINIMIZE\_BOX}}{Displays a minimize box on the frame (Windows and Motif only).}
33\twocolitem{\windowstyle{wxRESIZE\_BORDER}}{Displays a resizeable border around the window (Motif only;
34for Windows, it is implicit in wxTHICK\_FRAME).}
35\twocolitem{\windowstyle{wxSTAY\_ON\_TOP}}{Stay on top of other windows (Windows only).}
36\twocolitem{\windowstyle{wxSYSTEM\_MENU}}{Displays a system menu (Windows and Motif only).}
37\twocolitem{\windowstyle{wxTHICK\_FRAME}}{Displays a thick frame around the window (Windows and Motif only).}
38\end{twocollist}
39
40See also \helpref{window styles overview}{windowstyles}.
41
42\wxheading{Remarks}
43
fc2171bd 44Although internally an MDI child frame is a child of the MDI client window, in wxWidgets
a660d684
KB
45you create it as a child of \helpref{wxMDIParentFrame}{wxmdiparentframe}. You can usually
46forget that the client window exists.
47
48MDI child frames are clipped to the area of the MDI client window, and may be iconized
49on the client window.
50
51You can associate a menubar with a child frame as usual, although an MDI child doesn't display
52its menubar under its own title bar. The MDI parent frame's menubar will be changed to
53reflect the currently active child frame. If there are currently no children, the parent
54frame's own menubar will be displayed.
55
56\wxheading{See also}
57
58\helpref{wxMDIClientWindow}{wxmdiclientwindow}, \helpref{wxMDIParentFrame}{wxmdiparentframe},\rtfsp
59\helpref{wxFrame}{wxframe}
60
61\latexignore{\rtfignore{\wxheading{Members}}}
62
f0e8a2d0 63\membersection{wxMDIChildFrame::wxMDIChildFrame}\label{wxmdichildframector}
a660d684
KB
64
65\func{}{wxMDIChildFrame}{\void}
66
67Default constructor.
68
eaaa6a06 69\func{}{wxMDIChildFrame}{\param{wxMDIParentFrame* }{parent}, \param{wxWindowID }{id},\rtfsp
a660d684
KB
70\param{const wxString\& }{title}, \param{const wxPoint\&}{ pos = wxDefaultPosition},\rtfsp
71\param{const wxSize\&}{ size = wxDefaultSize}, \param{long}{ style = wxDEFAULT\_FRAME\_STYLE},\rtfsp
72\param{const wxString\& }{name = ``frame"}}
73
74Constructor, creating the window.
75
76\wxheading{Parameters}
77
78\docparam{parent}{The window parent. This should not be NULL.}
79
80\docparam{id}{The window identifier. It may take a value of -1 to indicate a default value.}
81
82\docparam{title}{The caption to be displayed on the frame's title bar.}
83
84\docparam{pos}{The window position. A value of (-1, -1) indicates a default position, chosen by
fc2171bd 85either the windowing system or wxWidgets, depending on platform.}
a660d684
KB
86
87\docparam{size}{The window size. A value of (-1, -1) indicates a default size, chosen by
fc2171bd 88either the windowing system or wxWidgets, depending on platform.}
a660d684
KB
89
90\docparam{style}{The window style. See \helpref{wxMDIChildFrame}{wxmdichildframe}.}
91
92\docparam{name}{The name of the window. This parameter is used to associate a name with the item,
93allowing the application user to set Motif resource values for
94individual windows.}
95
96\wxheading{Remarks}
97
98None.
99
100\wxheading{See also}
101
102\helpref{wxMDIChildFrame::Create}{wxmdichildframecreate}
103
f0e8a2d0 104\membersection{wxMDIChildFrame::\destruct{wxMDIChildFrame}}\label{wxmdichildframedtor}
a660d684
KB
105
106\func{}{\destruct{wxMDIChildFrame}}{\void}
107
108Destructor. Destroys all child windows and menu bar if present.
109
110\membersection{wxMDIChildFrame::Activate}\label{wxmdichildframeactivate}
111
112\func{void}{Activate}{\void}
113
114Activates this MDI child frame.
115
116\wxheading{See also}
117
118\helpref{wxMDIChildFrame::Maximize}{wxmdichildframemaximize},\rtfsp
119\helpref{wxMDIChildFrame::Restore}{wxmdichildframerestore}
120
121\membersection{wxMDIChildFrame::Create}\label{wxmdichildframecreate}
122
eaaa6a06 123\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id},\rtfsp
a660d684
KB
124\param{const wxString\& }{title}, \param{const wxPoint\&}{ pos = wxDefaultPosition},\rtfsp
125\param{const wxSize\&}{ size = wxDefaultSize}, \param{long}{ style = wxDEFAULT\_FRAME\_STYLE},\rtfsp
126\param{const wxString\& }{name = ``frame"}}
127
f0e8a2d0 128Used in two-step frame construction. See \helpref{wxMDIChildFrame::wxMDIChildFrame}{wxmdichildframector}\rtfsp
a660d684
KB
129for further details.
130
131\membersection{wxMDIChildFrame::Maximize}\label{wxmdichildframemaximize}
132
0f353563 133\func{void}{Maximize}{\param{bool}{maximize}}
a660d684
KB
134
135Maximizes this MDI child frame.
136
137\wxheading{See also}
138
139\helpref{wxMDIChildFrame::Activate}{wxmdichildframeactivate},\rtfsp
140\helpref{wxMDIChildFrame::Restore}{wxmdichildframerestore}
141
142\membersection{wxMDIChildFrame::Restore}\label{wxmdichildframerestore}
143
144\func{void}{Restore}{\void}
145
146Restores this MDI child frame (unmaximizes).
147
148\wxheading{See also}
149
150\helpref{wxMDIChildFrame::Activate}{wxmdichildframeactivate},\rtfsp
151\helpref{wxMDIChildFrame::Maximize}{wxmdichildframemaximize}
152
a660d684
KB
153\section{\class{wxMDIClientWindow}}\label{wxmdiclientwindow}
154
155An MDI client window is a child of \helpref{wxMDIParentFrame}{wxmdiparentframe}, and manages zero or
156more \helpref{wxMDIChildFrame}{wxmdichildframe} objects.
157
158\wxheading{Derived from}
159
160\helpref{wxWindow}{wxwindow}\\
161\helpref{wxEvtHandler}{wxevthandler}\\
162\helpref{wxObject}{wxobject}
163
954b8ae6
JS
164\wxheading{Include files}
165
166<wx/mdi.h>
167
a7af285d
VZ
168\wxheading{Library}
169
170\helpref{wxCore}{librarieslist}
171
a660d684
KB
172\wxheading{Remarks}
173
174The client window is the area where MDI child windows exist. It doesn't have to cover the whole
175parent frame; other windows such as toolbars and a help window might coexist with it.
176There can be scrollbars on a client window, which are controlled by the parent window style.
177
178The {\bf wxMDIClientWindow} class is usually adequate without further derivation, and it is created
179automatically when the MDI parent frame is created. If the application needs to derive a new class,
180the function \helpref{wxMDIParentFrame::OnCreateClient}{wxmdiparentframeoncreateclient} must be
181overridden in order to give an opportunity to use a different class of client window.
182
183Under Windows 95, the client window will automatically have a sunken border style when
184the active child is not maximized, and no border style when a child is maximized.
185
186\wxheading{See also}
187
188\helpref{wxMDIChildFrame}{wxmdichildframe}, \helpref{wxMDIParentFrame}{wxmdiparentframe},\rtfsp
189\helpref{wxFrame}{wxframe}
190
191\latexignore{\rtfignore{\wxheading{Members}}}
192
f0e8a2d0 193\membersection{wxMDIClientWindow::wxMDIClientWindow}\label{wxmdiclientwindowctor}
a660d684
KB
194
195\func{}{wxMDIClientWindow}{\void}
196
197Default constructor.
198
199\func{}{wxMDIClientWindow}{\param{wxMDIParentFrame* }{parent}, \param{long}{ style = 0}}
200
201Constructor, creating the window.
202
203\wxheading{Parameters}
204
205\docparam{parent}{The window parent.}
206
207\docparam{style}{The window style. Currently unused.}
208
209\wxheading{Remarks}
210
211The second style of constructor is called within \helpref{wxMDIParentFrame::OnCreateClient}{wxmdiparentframeoncreateclient}.
212
213\wxheading{See also}
214
f0e8a2d0 215\helpref{wxMDIParentFrame::wxMDIParentFrame}{wxmdiparentframector},\rtfsp
a660d684
KB
216\helpref{wxMDIParentFrame::OnCreateClient}{wxmdiparentframeoncreateclient}
217
f0e8a2d0 218\membersection{wxMDIClientWindow::\destruct{wxMDIClientWindow}}\label{wxmdiclientwindowdtor}
a660d684
KB
219
220\func{}{\destruct{wxMDIClientWindow}}{\void}
221
222Destructor.
223
224\membersection{wxMDIClientWindow::CreateClient}\label{wxmdiclientwindowcreateclient}
225
226\func{bool}{CreateClient}{\param{wxMDIParentFrame* }{parent}, \param{long}{ style = 0}}
227
f0e8a2d0 228Used in two-step frame construction. See \helpref{wxMDIClientWindow::wxMDIClientWindow}{wxmdiclientwindowctor}\rtfsp
a660d684
KB
229for further details.
230
231\section{\class{wxMDIParentFrame}}\label{wxmdiparentframe}
232
233An MDI (Multiple Document Interface) parent frame is a window which can contain
234MDI child frames in its own `desktop'. It is a convenient way to avoid window clutter,
235and is used in many popular Windows applications, such as Microsoft Word(TM).
236
237\wxheading{Derived from}
238
239\helpref{wxFrame}{wxframe}\\
7376079d 240\helpref{wxTopLevelWindow}{wxtoplevelwindow}\\
a660d684
KB
241\helpref{wxWindow}{wxwindow}\\
242\helpref{wxEvtHandler}{wxevthandler}\\
243\helpref{wxObject}{wxobject}
244
954b8ae6
JS
245\wxheading{Include files}
246
247<wx/mdi.h>
248
a7af285d
VZ
249\wxheading{Library}
250
251\helpref{wxCore}{librarieslist}
252
a660d684
KB
253\wxheading{Remarks}
254
255There may be multiple MDI parent frames in a single application, but this probably only makes sense
256within programming development environments.
257
5bb31e35
JS
258Child frames may be of class \helpref{wxMDIChildFrame}{wxmdichildframe} (contained
259within the parent frame) or \helpref{wxFrame}{wxframe} (shown as a top-level frame).
a660d684
KB
260
261An MDI parent frame always has a \helpref{wxMDIClientWindow}{wxmdiclientwindow} associated with it, which
4e43c815 262is the parent for MDI child frames.
f6bcfd97 263This client window may be resized to accommodate non-MDI windows, as seen in Microsoft Visual C++ (TM) and
a660d684
KB
264Microsoft Publisher (TM), where a documentation window is placed to one side of the workspace.
265
266MDI remains popular despite dire warnings from Microsoft itself that MDI is an obsolete
267user interface style.
268
269The implementation is native in Windows, and simulated under Motif. Under Motif,
270the child window frames will often have a different appearance from other frames
271because the window decorations are simulated.
272
273\wxheading{Window styles}
274
275\twocolwidtha{5cm}
276\begin{twocollist}\itemsep=0pt
277\twocolitem{\windowstyle{wxCAPTION}}{Puts a caption on the frame.}
278\twocolitem{\windowstyle{wxDEFAULT\_FRAME\_STYLE}}{Defined as {\bf wxMINIMIZE\_BOX \pipe wxMAXIMIZE\_BOX \pipe wxTHICK\_FRAME \pipe wxSYSTEM\_MENU \pipe wxCAPTION}.}
279\twocolitem{\windowstyle{wxHSCROLL}}{Displays a horizontal scrollbar in the {\it client window}, allowing
280the user to view child frames that are off the current view.}
281\twocolitem{\windowstyle{wxICONIZE}}{Display the frame iconized (minimized) (Windows only).}
282\twocolitem{\windowstyle{wxMAXIMIZE}}{Displays the frame maximized (Windows only).}
283\twocolitem{\windowstyle{wxMAXIMIZE\_BOX}}{Displays a maximize box on the frame (Windows and Motif only).}
284\twocolitem{\windowstyle{wxMINIMIZE}}{Identical to {\bf wxICONIZE}.}
285\twocolitem{\windowstyle{wxMINIMIZE\_BOX}}{Displays a minimize box on the frame (Windows and Motif only).}
286\twocolitem{\windowstyle{wxRESIZE\_BORDER}}{Displays a resizeable border around the window (Motif only;
287for Windows, it is implicit in wxTHICK\_FRAME).}
288\twocolitem{\windowstyle{wxSTAY\_ON\_TOP}}{Stay on top of other windows (Windows only).}
289\twocolitem{\windowstyle{wxSYSTEM\_MENU}}{Displays a system menu (Windows and Motif only).}
290\twocolitem{\windowstyle{wxTHICK\_FRAME}}{Displays a thick frame around the window (Windows and Motif only).}
291\twocolitem{\windowstyle{wxVSCROLL}}{Displays a vertical scrollbar in the {\it client window}, allowing
292the user to view child frames that are off the current view.}
8771a323 293\twocolitem{\windowstyle{wxFRAME\_NO\_WINDOW\_MENU}}{Under Windows, removes the Window menu that is normally
df61c009 294added automatically.}
a660d684
KB
295\end{twocollist}
296
297See also \helpref{window styles overview}{windowstyles}.
298
299\wxheading{See also}
300
301\helpref{wxMDIChildFrame}{wxmdichildframe}, \helpref{wxMDIClientWindow}{wxmdiclientwindow},\rtfsp
302\helpref{wxFrame}{wxframe}, \helpref{wxDialog}{wxdialog}
303
304\latexignore{\rtfignore{\wxheading{Members}}}
305
f0e8a2d0 306\membersection{wxMDIParentFrame::wxMDIParentFrame}\label{wxmdiparentframector}
a660d684
KB
307
308\func{}{wxMDIParentFrame}{\void}
309
310Default constructor.
311
eaaa6a06 312\func{}{wxMDIParentFrame}{\param{wxWindow* }{parent}, \param{wxWindowID }{id},\rtfsp
a660d684
KB
313\param{const wxString\& }{title}, \param{const wxPoint\&}{ pos = wxDefaultPosition},\rtfsp
314\param{const wxSize\&}{ size = wxDefaultSize}, \param{long}{ style = wxDEFAULT\_FRAME\_STYLE \pipe wxVSCROLL \pipe wxHSCROLL},\rtfsp
315\param{const wxString\& }{name = ``frame"}}
316
317Constructor, creating the window.
318
319\wxheading{Parameters}
320
321\docparam{parent}{The window parent. This should be NULL.}
322
323\docparam{id}{The window identifier. It may take a value of -1 to indicate a default value.}
324
325\docparam{title}{The caption to be displayed on the frame's title bar.}
326
327\docparam{pos}{The window position. A value of (-1, -1) indicates a default position, chosen by
fc2171bd 328either the windowing system or wxWidgets, depending on platform.}
a660d684
KB
329
330\docparam{size}{The window size. A value of (-1, -1) indicates a default size, chosen by
fc2171bd 331either the windowing system or wxWidgets, depending on platform.}
a660d684
KB
332
333\docparam{style}{The window style. See \helpref{wxMDIParentFrame}{wxmdiparentframe}.}
334
335\docparam{name}{The name of the window. This parameter is used to associate a name with the item,
336allowing the application user to set Motif resource values for
337individual windows.}
338
339\wxheading{Remarks}
340
341During the construction of the frame, the client window will be created. To use a different class
342from \helpref{wxMDIClientWindow}{wxmdiclientwindow}, override\rtfsp
343\helpref{wxMDIParentFrame::OnCreateClient}{wxmdiparentframeoncreateclient}.
344
345Under Windows 95, the client window will automatically have a sunken border style when
346the active child is not maximized, and no border style when a child is maximized.
347
348\wxheading{See also}
349
350\helpref{wxMDIParentFrame::Create}{wxmdiparentframecreate},\rtfsp
351\helpref{wxMDIParentFrame::OnCreateClient}{wxmdiparentframeoncreateclient}
352
f0e8a2d0 353\membersection{wxMDIParentFrame::\destruct{wxMDIParentFrame}}\label{wxmdiparentframedtor}
a660d684
KB
354
355\func{}{\destruct{wxMDIParentFrame}}{\void}
356
357Destructor. Destroys all child windows and menu bar if present.
358
359\membersection{wxMDIParentFrame::ActivateNext}\label{wxmdiparentframeactivatenext}
360
361\func{void}{ActivateNext}{\void}
362
363Activates the MDI child following the currently active one.
364
365\wxheading{See also}
366
367\helpref{wxMDIParentFrame::ActivatePrevious}{wxmdiparentframeactivateprevious}
368
369\membersection{wxMDIParentFrame::ActivatePrevious}\label{wxmdiparentframeactivateprevious}
370
371\func{void}{ActivatePrevious}{\void}
372
373Activates the MDI child preceding the currently active one.
374
375\wxheading{See also}
376
377\helpref{wxMDIParentFrame::ActivateNext}{wxmdiparentframeactivatenext}
378
379
380\membersection{wxMDIParentFrame::ArrangeIcons}\label{wxmdiparentframearrangeicons}
381
382\func{void}{ArrangeIcons}{\void}
383
384Arranges any iconized (minimized) MDI child windows.
385
386\wxheading{See also}
387
388\helpref{wxMDIParentFrame::Cascade}{wxmdiparentframecascade},\rtfsp
389\helpref{wxMDIParentFrame::Tile}{wxmdiparentframetile}
390
391\membersection{wxMDIParentFrame::Cascade}\label{wxmdiparentframecascade}
392
393\func{void}{Cascade}{\void}
394
395Arranges the MDI child windows in a cascade.
396
397\wxheading{See also}
398
399\helpref{wxMDIParentFrame::Tile}{wxmdiparentframetile},\rtfsp
400\helpref{wxMDIParentFrame::ArrangeIcons}{wxmdiparentframearrangeicons}
401
402\membersection{wxMDIParentFrame::Create}\label{wxmdiparentframecreate}
403
eaaa6a06 404\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id},\rtfsp
a660d684
KB
405\param{const wxString\& }{title}, \param{const wxPoint\&}{ pos = wxDefaultPosition},\rtfsp
406\param{const wxSize\&}{ size = wxDefaultSize}, \param{long}{ style = wxDEFAULT\_FRAME\_STYLE \pipe wxVSCROLL \pipe wxHSCROLL},\rtfsp
407\param{const wxString\& }{name = ``frame"}}
408
f0e8a2d0 409Used in two-step frame construction. See \helpref{wxMDIParentFrame::wxMDIParentFrame}{wxmdiparentframector}\rtfsp
a660d684
KB
410for further details.
411
412\membersection{wxMDIParentFrame::GetClientSize}\label{wxmdiparentframegetclientsize}
413
414\constfunc{virtual void}{GetClientSize}{\param{int* }{width}, \param{int* }{height}}
415
416This gets the size of the frame `client area' in pixels.
417
418\wxheading{Parameters}
419
420\docparam{width}{Receives the client width in pixels.}
421
422\docparam{height}{Receives the client height in pixels.}
423
424\wxheading{Remarks}
425
426The client area is the area which may be drawn on by the programmer, excluding title bar, border, status bar,
427and toolbar if present.
428
429If you wish to manage your own toolbar (or perhaps you have more than one),
430provide an {\bf OnSize} event handler. Call {\bf GetClientSize} to
431find how much space there is for your windows and don't forget to set the size and position
432of the MDI client window as well as your toolbar and other windows (but not the status bar).
433
434If you have set a toolbar with \helpref{wxMDIParentFrame::SetToolbar}{wxmdiparentframesettoolbar},
435the client size returned will have subtracted the toolbar height. However, the available positions
436for the client window and other windows of the frame do not start at zero - you must add the toolbar height.
437
438The position and size of the status bar and toolbar (if known to the frame) are always managed
439by {\bf wxMDIParentFrame}, regardless of what behaviour is defined in your {\bf OnSize} event handler.
440However, the client window position and size are always set in {\bf OnSize}, so if you override this
441event handler, make sure you deal with the client window.
442
443You do not have to manage the size and position of MDI child windows, since they are managed
444automatically by the client window.
445
446\wxheading{See also}
447
448\helpref{wxMDIParentFrame::GetToolBar}{wxmdiparentframegettoolbar},\rtfsp
449\helpref{wxMDIParentFrame::SetToolBar}{wxmdiparentframesettoolbar},\rtfsp
a660d684
KB
450\helpref{wxMDIClientWindow}{wxmdiclientwindow}
451
06d20283
RD
452
453\pythonnote{The wxPython version of this method takes no arguments and
454returns a tuple containing width and height.}
455
a660d684
KB
456\membersection{wxMDIParentFrame::GetActiveChild}\label{wxmdiparentframegetactivechild}
457
458\constfunc{wxMDIChildFrame*}{GetActiveChild}{\void}
459
460Returns a pointer to the active MDI child, if there is one.
461
462\membersection{wxMDIParentFrame::GetClientWindow}\label{wxmdiparentframegetclientwindow}
463
464\constfunc{wxMDIClientWindow*}{GetClientWindow}{\void}
465
466Returns a pointer to the client window.
467
468\wxheading{See also}
469
470\helpref{wxMDIParentFrame::OnCreateClient}{wxmdiparentframeoncreateclient}
471
472\membersection{wxMDIParentFrame::GetToolBar}\label{wxmdiparentframegettoolbar}
473
474\constfunc{virtual wxWindow*}{GetToolBar}{\void}
475
476Returns the window being used as the toolbar for this frame.
477
478\wxheading{See also}
479
480\helpref{wxMDIParentFrame::SetToolBar}{wxmdiparentframesettoolbar}
481
df61c009
JS
482\membersection{wxMDIParentFrame::GetWindowMenu}\label{wxmdiparentframegetwindowmenu}
483
484\constfunc{wxMenu*}{GetWindowMenu}{\void}
485
fc2171bd 486Returns the current Window menu (added by wxWidgets to the menubar). This function
df61c009
JS
487is available under Windows only.
488
a660d684
KB
489\membersection{wxMDIParentFrame::OnCreateClient}\label{wxmdiparentframeoncreateclient}
490
491\func{virtual wxMDIClientWindow*}{OnCreateClient}{\void}
492
f6bcfd97
BP
493Override this to return a different kind of client window. If you override this function,
494you must create your parent frame in two stages, or your function will never be called,
495due to the way C++ treats virtual functions called from constructors. For example:
496
497\begin{verbatim}
498 frame = new MyParentFrame;
499 frame->Create(parent, myParentFrameId, wxT("My Parent Frame"));
500\end{verbatim}
a660d684
KB
501
502\wxheading{Remarks}
503
504You might wish to derive from \helpref{wxMDIClientWindow}{wxmdiclientwindow} in order
505to implement different erase behaviour, for example, such as painting a bitmap
506on the background.
507
508Note that it is probably impossible to have a client window that scrolls as well as painting
509a bitmap or pattern, since in {\bf OnScroll}, the scrollbar positions always return zero.
7af3ca16 510(Solutions to: {\tt julian.smart@btopenworld.com}).
a660d684
KB
511
512\wxheading{See also}
513
514\helpref{wxMDIParentFrame::GetClientWindow}{wxmdiparentframegetclientwindow},\rtfsp
515\helpref{wxMDIClientWindow}{wxmdiclientwindow}
516
517\membersection{wxMDIParentFrame::SetToolBar}\label{wxmdiparentframesettoolbar}
518
519\func{virtual void}{SetToolBar}{\param{wxWindow*}{ toolbar}}
520
521Sets the window to be used as a toolbar for this
522MDI parent window. It saves the application having to manage the positioning
523of the toolbar MDI client window.
524
525\wxheading{Parameters}
526
527\docparam{toolbar}{Toolbar to manage.}
528
529\wxheading{Remarks}
530
531When the frame is resized, the toolbar is resized to be the width of
532the frame client area, and the toolbar height is kept the same.
533
534The parent of the toolbar must be this frame.
535
536If you wish to manage your own toolbar (or perhaps you have more than one),
537don't call this function, and instead manage your subwindows and the MDI client window by
538providing an {\bf OnSize} event handler. Call \helpref{wxMDIParentFrame::GetClientSize}{wxmdiparentframegetclientsize} to
539find how much space there is for your windows.
540
541Note that SDI (normal) frames and MDI child windows must always have their
542toolbars managed by the application.
543
544\wxheading{See also}
545
546\helpref{wxMDIParentFrame::GetToolBar}{wxmdiparentframegettoolbar},\rtfsp
547\helpref{wxMDIParentFrame::GetClientSize}{wxmdiparentframegetclientsize}
548
df61c009
JS
549\membersection{wxMDIParentFrame::SetWindowMenu}\label{wxmdiparentframesetwindowmenu}
550
551\func{void}{SetWindowMenu}{\param{wxMenu*}{ menu}}
552
553Call this to change the current Window menu. Ownership of the menu object passes to
554the frame when you call this function.
555
556This call is available under Windows only.
557
558To remove the window completely, use the wxFRAME\_NO\_WINDOW\_MENU window style.
559
a660d684
KB
560\membersection{wxMDIParentFrame::Tile}\label{wxmdiparentframetile}
561
0d97c090 562\func{void}{Tile}{\param{wxOrientation}{ orient = wxHORIZONTAL}}
a660d684 563
0d97c090
VZ
564Tiles the MDI child windows either horizontally or vertically depending on
565whether \arg{orient} is wxHORIZONTAL or wxVERTICAL.
566
567Currently only implemented for MSW, does nothing under the other platforms.
a660d684
KB
568
569\wxheading{See also}
570
571\helpref{wxMDIParentFrame::Cascade}{wxmdiparentframecascade},\rtfsp
572\helpref{wxMDIParentFrame::ArrangeIcons}{wxmdiparentframearrangeicons}
573
574