Mi rendo conto che il mio nick possa far pensare male!!
Ok cominciamo:
Ho scritto un applicazione minimale, giusto per comprendere a livello concettuale i costrutti del linguaggio:
codice:
class MyApp : public wxApp {
public:
virtual bool OnInit();
};
class MyFrame : public wxFrame {
public:
// dovrebbe essere il costruttore
MyFrame(const wxString& title):wxFrame(NULL, wxID_ANY, title) {
wxToolBar *toolBar = new wxToolBar(this, wxID_ANY, wxPoint(20,50), wxSize(100,100), 0, wxT("tool1"));
wxButton *bot = new wxButton(toolBar, wxID_OK, wxT("Chiudi"), wxDefaultPosition, wxDefaultSize);
}
void chiudi(wxCommandEvent& event);
private:
DECLARE_EVENT_TABLE()
};
BEGIN_EVENT_TABLE(MyFrame, wxFrame)
EVT_BUTTON (wxID_OK, MyFrame::chiudi)
END_EVENT_TABLE()
IMPLEMENT_APP(MyApp)
bool MyApp::OnInit() {
MyFrame *frame = new MyFrame(_T("E' Dura"));
frame->CenterOnScreen();
frame->Show(TRUE);
return TRUE;
}
void MyFrame::chiudi(wxCommandEvent& event) {
Close();
}
DOMANDE:
1) Non posso settare i parametri del frame nel suo costruttore (come logica dovrebbe imporre) tipo titolo dimensione ecc..? Se è possibile come posso fare?? Ho provato a inserire qualcosa come:
codice:
MyFrame(_T("E' Dura")):wxFrame(NULL, wxID_ANY, title);
ma mi da errore.
2) Perchè nella wxToolBar gli attributi wxPoint e wxSize sono totalmente ignorati? Per aggiungere una qualsiasi cosa (bottoni testo immagini ecc) a quest'ultima che metodo devo utilizzare?? L'unico modo con cui sono riuscito a inserire quel bottoncino è passargli come parent la toolbar... dovrebbe essere una vera porcheria... anche perchè se invece che wxDefaultPosition inserisco delle coordinate (volendo, per esempio, inserirlo a metà toolbar) il bottone scompare
3) E' possibile avere una consolle (simile a quella di eclipse) che stampasse delle stringhe allo scatenarsi di dterminati eventi??
Esempio:
codice:
void MyFrame::chiudi(wxCommandEvent& event) {
cout <<"Che disastro";
}
Vorrei che alla pressione sul bottone la scritta "che disastro" venisse stampata da qualche parte...
Grazie per la pazienza!