Gino+89+
08-12-2007, 17:22
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):
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();
}
Il problema è nell'allineamento e posizionamento dei controlli infatti appena faccio partire l'eseguibile mi mette l'immagine a sinistra (come se non ci fosse nessun wxALIGN_CENTER) e il textctrl in alto a sinistra sovrapposto all'immagine!..in poche parole inserisce i controlli ma canna il layout.
Solo quando con il mouse ridimensiono la finestra mi si aggiorna il tutto nel modo corretto (quindi il sorgente è corretto).
Perche?
Grazie.
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):
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();
}
Il problema è nell'allineamento e posizionamento dei controlli infatti appena faccio partire l'eseguibile mi mette l'immagine a sinistra (come se non ci fosse nessun wxALIGN_CENTER) e il textctrl in alto a sinistra sovrapposto all'immagine!..in poche parole inserisce i controlli ma canna il layout.
Solo quando con il mouse ridimensiono la finestra mi si aggiorna il tutto nel modo corretto (quindi il sorgente è corretto).
Perche?
Grazie.