Я создал приложение wxPerl, которое представляет собой простой фрейм, который содержит только wxMenuBar, wxPanel, wxTextCtrl и wxStaticBitmap. Платформа разработки и развертывания - Windows XP и выше.
Изображение добавляется в форму следующим образом:
my $logoData = Wx::Bitmap->new(App::Resource::Images::getLogoPath(), wxBITMAP_TYPE_BMP);
my $logo = Wx::StaticBitmap->new($self, -1, $logoData);
У меня не было проблем с отображением изображения. Я сделал установщик с Inno Setup, который добавляет значок на рабочий стол пользователя. Если приложение запускается с использованием этого ярлыка, окно не рисует мой wxStaticBitmap. Только когда приложение теряет фокус и какое-то другое окно перемещается над ним, только тогда будет нарисован мой wxStaticBitmap.
При запуске приложения из меню «Пуск», быстрого запуска, или непосредственно после компиляции его с помощью wxpar, или только с помощью perl interperter, отображается мой wxStaticBitmap в порядке.
Единственное, что я нашел, это звонит Refresh()
и Update()
на моем wxFrame. После создания этого wxFrame я вызываю Show(1)
и сразу после этого Refresh()
и Update()
. Но пока не повезло с этим.