Guidance Forums / wxWidgets (wxWindows) in C++ / DialogBlocks - Create a dialog application?

Search 搜索
Home Home

Forum List • Thread List • Refresh • New Topic • Search • Previous • Next First 1 Last
Message1. DialogBlocks - Create a dialog application?
Posted by: 2003-11-05 20:33:47

what format do i need for creating a dialog based app?

I tried creating a wxApp child class which loaded my dialog which worked great until i closed the dialog, then the app carried on running. There was no way for me to kill it.

I tried implementing the application in the dialog class, but the call to IMPLEMENT_APP fails.

Can anyone point me in the right direction?

Message2. Re: DialogBlocks - Create a dialog application?
Posted by: upCASE 2003-11-05 21:02:03
Hi Skute!
It's not that complecated, you're on the right track and will be done in just a minute :))

Problem is that dialogs normally have their own event loop. This is necessary when using dialogs modal (so the dialog is on top of all the action going on in a frame you created it from). That means that if the frame is closed, the parent of the dialog dies and so the dialog will be destroyed. Since there is no parent when using only a dialog instead of a frame, the dialog is closed and then there's a return to the normal wxApp event loop. So, what you'll have to do is implement an event handler to Destroy the dialog correctly and terminate the wxApp.
Do it like this:

In your dialog class derived from wxDialog add a method like OnQuit() and implement it.

bool MainApp::OnInit() //stating point of the application
{	//Create the dialog
   MyDialog *win = new MyDialog("Bla", wxDefaultPosition,wxDefaultSize);
   win->Centre(); // center the dialog on screen
   win->Show(TRUE); // show the dialog on screen
   SetTopWindow( win ); // make dialog the zop window
   return true;

BEGIN_EVENT_TABLE(MyDialog, wxDialog)
   EVT_CLOSE( MyDialog::OnQuit)
//Perform quit operation: Destroy the dialog and all its contents
void MainDialog::OnQuit(wxCommandEvent & WXUNUSED(event))
    Destroy(); // this calls all needed detructors

Now if you're closing the dialog, it should destroy the whole app.

If it was hard to write, it should be hard to read!- Do. Or do not. There is no try!
Message3. Re: DialogBlocks - Create a dialog application?
Posted by: 2003-11-05 22:49:32
Thanks :)

It worked great!
Forum List • Thread List • Refresh • New Topic • Search • Previous • Next First 1 Last
© Tue 2024-7-16  Guidance Laboratory Inc. Hits:0