wxWidgets 101 - 8 wxDialog (1)

There are Model and Modelless, let's start from Model

class MyDialog : public wxDialog
{
:
}

MyDialog::MyDialog(wxFrame *parent)
                                : wxDialog(parent,
                                 wxID_ANY,
                                 wxT("Test dialog"),
                                 wxDefaultPosition,
                                 wxDefaultSize,
                                 wxRESIZE_BORDER|wxDEFAULT_DIALOG_STYLE )
{
:
}
create on heap:

MyAskDialog dlg = new MyAskDialog(...);

create on stack:
MyAskDialog dlg(...);

Model Dialog: ShowModal()
Modelless Show()

example:

1).

void MyFrame::OnShowDialog(wxCommandEvent& WXUNUSED(event) )
{  
    MyAskDialog dlg(this); //on stack
    dlg.ShowModal();        //model
}

2).

void MyFrame::OnShowDialog(wxCommandEvent& WXUNUSED(event) )
{  
    MyAskDialog dlg(this); //on stack
    dlg.Show();                  //modelless
}

3).

void MyFrame::OnShowDialog(wxCommandEvent& WXUNUSED(event) )
{  
    MyAskDialog dlg = new MyAskDialog(...) ; //on heap
    dlg.ShowModal();                                        //model
}

4).

void MyFrame::OnShowDialog(wxCommandEvent& WXUNUSED(event) )
{  
    MyAskDialog dlg = new MyAskDialog(...) ; //on heap
    dlg.Show();                                                  //modelless
}

Styles:

wxCAPTION

Puts a caption on the dialog box.

wxDEFAULT_DIALOG_STYLE

Equivalent to a combination of wxCAPTION, wxCLOSE_BOX and wxSYSTEM_MENU

wxRESIZE_BORDER

Display a resizeable frame around the window.

wxSYSTEM_MENU

Display a system menu.

wxCLOSE_BOX

Displays a close box on the frame.

wxMAXIMIZE_BOX

Displays a maximize box on the dialog.

wxMINIMIZE_BOX

Displays a minimize box on the dialog.

wxTHICK_FRAME

Display a thick frame around the window.

wxSTAY_ON_TOP

The dialog stays on top of all other windows.

wxNO_3D

Under Windows, specifies that the child controls should not have 3D borders unless specified in the control.

wxDIALOG_NO_PARENT

By default, a dialog created with a NULL parent window will be given the application's top level window as parent. Use this style to prevent this from happening and create an orphan dialog. This is not recommended for modal dialogs.

wxDIALOG_EX_CONTEXTHELP

Under Windows, puts a query button on the caption. When pressed, Windows will go into a context-sensitive help mode and wxWidgets will send a wxEVT_HELP event if the user clicked on an application window. Note that this is an extended style and must be set by calling SetExtraStyle() before Create is called (two-step construction).

wxDIALOG_EX_METAL

On Mac OS X, frames with this style will be shown with a metallic look. This is an extra style.



使用已有的 dialog
class   wxBusyInfo
class   wxMultiChoiceDialog
class   wxSingleChoiceDialog
class   wxFontData
class   wxColourData
class   wxColourDialog
class   wxDialog
class   wxDirDialog
class   wxFindReplaceDialog
class   wxFileDialog
class   wxFontDialog
class   wxMessageDialog
class   wxProgressDialog
class   wxSymbolPickerDialog
class   wxPasswordEntryDialog
class   wxTextEntryDialog
class   wxWizard

Inheritance diagram for wxDialog:



Related Generic classes:

wxGenericColourButton
wxGenericDragImage
wxGenericFileButton
wxGenericFontDialog
wxGenericFontButton
wxGenericAboutDialog
wxGenericBrush
wxGenericColourDialog
wxGenericColour
wxGenericCollapsiblePane
wxGenericColourRefData
wxGenericComboCtrl
wxGenericDirDialog = wxDirDialog
wxGenericDirCtrlXmlHandler
wxGenericDirCtrl
wxGenericFileDirButton
wxGenericFindReplaceDialog
wxGenericImageList
wxGenericListCtrl
wxGenericMDIClientWindow
wxGenericMDIParentFrame
wxGenericMessageDialog
wxGenericPageSetupDialog
wxGenericPen
wxGenericPrintDialog
wxGenericPrintSetupDialog
wxGenericPropertyAccessor
wxGenericTreeItem
wxGenericTreeCtrl
wxGenericValidator
wxGenericValidator

你可能感兴趣的:(wxWidgets 101 - 8 wxDialog (1))