|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Nov 2005
Città: Mantova
Messaggi: 115
|
[C++,wxWidgets] Problema layout finestra
Ciao a tutti.
Ho un grosso problema e non riesco a capire se è dovuto a come implemento il sorgente (progetto wxWidgets) o al sistema operativo... Faccio una cosa molto semplice: In poche parole inserisco un'immagine al centro (in alto) della finestra e subuto sotto un edit (uso i sizer): Codice:
LoginFrame::LoginFrame(const wxString& title)
: wxFrame(NULL, wxID_ANY, title, wxDefaultPosition,wxSize(257,550))
{
wxBoxSizer *vbox =new wxBoxSizer(wxVERTICAL);
wxPanel *panel=new wxPanel(this,ID_PANEL,wxDefaultPosition,wxDefaultSize);
wxColour *colour=new wxColour(20,114,255);
panel->SetBackgroundColour(colour->GetAsString());
wxBitmap bmp(logo_xpm);
wxStaticBitmap *sb1= new wxStaticBitmap(panel,-1,bmp);
vbox->Add(sb1,0,wxALIGN_CENTER | wxCENTER| wxBOTTOM);
hosttextctrl=new wxTextCtrl(panel,ID_HOSTTEXTCTRL,wxT(""));
vbox->Add(hosttextctrl,0,wxALIGN_CENTER);
panel->SetSizer(vbox);
Centre();
}
Solo quando con il mouse ridimensiono la finestra mi si aggiorna il tutto nel modo corretto (quindi il sorgente è corretto). Perche? Grazie. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Prova a richiamare il metodo Layout() del sizer.
Il tuo problema è dovuto al fatto che il panel ha dimensioni dipendenti dal sizer quindi quest'ultimo non sa quanto spazio occupare, ecco che occorre una "forzatina". |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 15:26.



















