2008-02-19 00:04:03 +00:00
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
// Name: roughguide
|
|
|
|
// Purpose: topic overview
|
|
|
|
// Author: wxWidgets team
|
|
|
|
// RCS-ID: $Id$
|
|
|
|
// Licence: wxWindows license
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
/*!
|
2008-02-19 13:28:24 +00:00
|
|
|
|
2008-02-26 09:29:48 +00:00
|
|
|
@page overview_roughguide Writing a wxWidgets Application: A Rough Guide
|
2008-02-19 13:28:24 +00:00
|
|
|
|
2008-02-26 09:29:48 +00:00
|
|
|
To set a wxWidgets application going, you will need to derive a #wxApp class
|
|
|
|
and override wxApp::OnInit.
|
|
|
|
|
|
|
|
An application must have a top-level #wxFrame or #wxDialog window. Each frame
|
|
|
|
may contain one or more instances of classes such as #wxPanel,
|
|
|
|
#wxSplitterWindow or other windows and controls.
|
|
|
|
|
|
|
|
A frame can have a #wxMenuBar, a #wxToolBar, a status line, and a #wxIcon for
|
|
|
|
when the frame is iconized.
|
|
|
|
|
|
|
|
A #wxPanel is used to place controls (classes derived from #wxControl) which
|
|
|
|
are used for user interaction. Examples of controls are #wxButton, #wxCheckBox,
|
|
|
|
#wxChoice, #wxListBox, #wxRadioBox, #wxSlider.
|
|
|
|
|
|
|
|
Instances of #wxDialog can also be used for controls and they have the
|
|
|
|
advantage of not requiring a separate frame.
|
|
|
|
|
|
|
|
Instead of creating a dialog box and populating it with items, it is possible
|
|
|
|
to choose one of the convenient common dialog classes, such as #wxMessageDialog
|
|
|
|
and #wxFileDialog.
|
|
|
|
|
|
|
|
You never draw directly onto a window - you use a <em>device context</em> (DC).
|
|
|
|
#wxDC is the base for #wxClientDC, #wxPaintDC, #wxMemoryDC, #wxPostScriptDC,
|
|
|
|
#wxMemoryDC, #wxMetafileDC and #wxPrinterDC. If your drawing functions have
|
|
|
|
wxDC as a parameter, you can pass any of these DCs to the function, and thus
|
|
|
|
use the same code to draw to several different devices. You can draw using the
|
|
|
|
member functions of wxDC, such as wxDC::DrawLine and wxDC::DrawText. Control
|
|
|
|
colour on a window (#wxColour) with brushes (#wxBrush) and pens (#wxPen).
|
|
|
|
|
|
|
|
To intercept events, you add a DECLARE_EVENT_TABLE macro to the window class
|
|
|
|
declaration, and put a BEGIN_EVENT_TABLE ... END_EVENT_TABLE block in the
|
|
|
|
implementation file. Between these macros, you add event macros which map the
|
|
|
|
event (such as a mouse click) to a member function. These might override
|
|
|
|
predefined event handlers such as for #wxKeyEvent and #wxMouseEvent.
|
|
|
|
|
|
|
|
Most modern applications will have an on-line, hypertext help system; for this,
|
|
|
|
you need wxHelp and the #wxHelpController class to control wxHelp.
|
|
|
|
|
|
|
|
GUI applications aren't all graphical wizardry. List and hash table needs are
|
|
|
|
catered for by #wxList and #wxHashMap. You will undoubtedly need some
|
|
|
|
platform-independent @ref functions_file, and you may find it handy to
|
|
|
|
maintain and search a list of paths using #wxPathList. There's many
|
|
|
|
@ref functions_miscellany of operating system methods and other functions.
|
|
|
|
|
|
|
|
@seealso
|
|
|
|
|
|
|
|
@li @ref overview_classesbycat
|
|
|
|
|
|
|
|
*/
|
2008-02-19 13:28:24 +00:00
|
|
|
|