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