Hi,
Use a frame with the appropriate style settings (fixed border etc) and once
shown set a
Wx::WindowDisabler to prevent user input to app.
Whatever mechanism you have chosen to make your long running work none blocking
will allow the window to update.
Regards
Mark
Foo JH wrote:
Hey Mark,
Thanks for the insight. I did explore ShowModal. It worked (as in the
text was painted), but the dialog held control of the app (effectively
freezing the application).
In my case, I wanted to use the dialog as a means to visually inform the
user that some work is going on. The plan was to open the dialog, do the
work, then close the dialog when it is done.
One possible way to do this is to move the business logic into the
dialog itself. It should work, though I'd like to consolidate all
business logic together.
Your thoughts?
Mark Dootson wrote:
Hi,
Because you have no mechanism to deliver events to the dialog.
Try
$dlg->ShowModal();
OR
Start off an app
my $app = Wx::SimpleApp->new();
my $dlg = .... your code
$dlg->Show(1);
$app->MainLoop;
Though in second case you need to put code in $dlg to kill loop on exit.
Cheers
Mark
Foo JH wrote:
Hi all,
I'm wondering why my Wx::StaticText is not painted in my test dialog.
The following is the code I used:
my $dlg = Wx::Dialog->new(
$this,
-1,
'SMARTSync Dialog',
wxDefaultPosition,
[200,70],
);
my $MainSizer = Wx::BoxSizer->new(wxVERTICAL);
$dlg->SetSizer($MainSizer);
my $label = Wx::StaticText->new($dlg,-1,
"Can you read me?");
$MainSizer->Add($label,0,wxALL|wxGROW,5);
$dlg->Show(1);
The dialog window shows, but the part where the text should be
painted is transparent.
Any help is appreciated. Thanks.