cs_satellite34
Messages postés688Date d'inscriptionmercredi 6 avril 2005StatutMembreDernière intervention 2 juin 2006
-
30 août 2005 à 23:48
fredcl
Messages postés547Date d'inscriptionmercredi 8 janvier 2003StatutMembreDernière intervention 7 octobre 2007
-
30 sept. 2005 à 11:27
Bonsoir,
Je travaille sur un dev qui contient plusieurs controles (3) dans une fenetre;
Il y a 2 sizers, et je voudrait que ces sizers redimmentionnent mes controles mais, en meme temps, fasse que les controles ne se chevauchent pas.
WxFlexGridSizer1 = new wxFlexGridSizer(2, 2, 0, 0);
WxFlexGridSizer2 = new wxFlexGridSizer(2, 2, 0, 0);
// BARRE DE MENUS
WxMenuBar1 = new wxMenuBar();
// FICHIER
wxMenu *ID_MNU_FICHIER_1021_Mnu_Obj = new wxMenu(0);
WxMenuBar1->Append(ID_MNU_FICHIER_1021_Mnu_Obj, wxT("Fichier"));
ID_MNU_FICHIER_1021_Mnu_Obj->Append(wxID_NEW, wxT("Nouveau \tCtrl+N"), wxT("Nouveau"), wxITEM_NORMAL);
ID_MNU_FICHIER_1021_Mnu_Obj->Append(wxID_OPEN, wxT("Ouvrir \tCtrl+O"), wxT("Ouvrir"), wxITEM_NORMAL);
ID_MNU_FICHIER_1021_Mnu_Obj->Append(wxID_CLOSE, wxT("Fermer \tCtrl+F4"), wxT("Fermer la source"), wxITEM_NORMAL);
ID_MNU_FICHIER_1021_Mnu_Obj->Append(ID_MNU_CLOSE_ALL, wxT("Tout fermer"), wxT("Fermer toutes les sources"), wxITEM_NORMAL);
ID_MNU_FICHIER_1021_Mnu_Obj->AppendSeparator();
wxMenu *ID_MNU_EXPORTER_1029_Mnu_Obj = new wxMenu(0);
ID_MNU_FICHIER_1021_Mnu_Obj->Append(ID_MNU_EXPORTER_1029, wxT("Exporter"), ID_MNU_EXPORTER_1029_Mnu_Obj);
ID_MNU_EXPORTER_1029_Mnu_Obj->Append(ID_MNU_EN_TXT_1033, wxT("en .txt"), wxT("exporter en texte"), wxITEM_NORMAL);
ID_MNU_EXPORTER_1029_Mnu_Obj->Append(ID_MNU_EN_HTML_1034, wxT("en .html"), wxT(""), wxITEM_NORMAL);
ID_MNU_EXPORTER_1029_Mnu_Obj->Append(ID_MNU_DSLEFORMATDULANGAGE_1035, wxT("dans le bon format"), wxT(""), wxITEM_NORMAL);
ID_MNU_FICHIER_1021_Mnu_Obj->Append(ID_MNU_IMPORTER_1030, wxT("Importer"), wxT("Importer des sources"), wxITEM_NORMAL);
ID_MNU_FICHIER_1021_Mnu_Obj->AppendSeparator();
ID_MNU_FICHIER_1021_Mnu_Obj->Append(ID_MNU_PROPRIETES, wxT("Propriétés"), wxT("Propriétés de la source"), wxITEM_NORMAL);
ID_MNU_FICHIER_1021_Mnu_Obj->Append(ID_MNU_PRINT,wxT("Imprimer \tCtrl+I"),wxT("Imprimer"), wxITEM_NORMAL);
ID_MNU_FICHIER_1021_Mnu_Obj->AppendSeparator();
ID_MNU_FICHIER_1021_Mnu_Obj->Append(ID_MNU_QUIT, wxT("Quitter \tALT+F4"), wxT("Quitter le programme"), wxITEM_NORMAL);
// EDITION
wxMenu *ID_MNU_EDITION = new wxMenu(0);
WxMenuBar1->Append(ID_MNU_EDITION, wxT("Edition"));
ID_MNU_EDITION->Append(wxID_UNDO, wxT("Annuler \tCtrl+Z"), wxT("Annuler une action"), wxITEM_NORMAL);
ID_MNU_EDITION->Append(wxID_REDO, wxT("Refaire \tCtrl+Y"), wxT("Refaire une action"), wxITEM_NORMAL);
ID_MNU_EDITION->AppendSeparator();
ID_MNU_EDITION->Append(wxID_SELECTALL, wxT("Tout sélectionner \tCtrl+A"), wxT("Tout sélectionner"), wxITEM_NORMAL);
ID_MNU_EDITION->Append(wxID_SELECTALL, wxT("Ne rien sélectionner \tCtrl+E"), wxT("Ne rien sélectionner"), wxITEM_NORMAL);
ID_MNU_EDITION->AppendSeparator();
ID_MNU_EDITION->Append(wxID_CUT, wxT("Couper \tCtrl+X"), wxT("Couper la sélection"), wxITEM_NORMAL);
ID_MNU_EDITION->Append(wxID_COPY, wxT("Copier \tCtrl+C"), wxT("Copier la sélection"), wxITEM_NORMAL);
ID_MNU_EDITION->Append(wxID_PASTE, wxT("Coller \tCtrl+V"), wxT("Coller la sélection"), wxITEM_NORMAL);
ID_MNU_EDITION->AppendSeparator();
ID_MNU_EDITION->Append(ID_CLEAR_ALL, wxT("Effacer tout \tCtrl+C"), wxT("Coller la sélection"), wxITEM_NORMAL);
ID_MNU_EDITION->AppendSeparator();
ID_MNU_EDITION->Append(myID_CHANGEUPPER, wxT("En majuscules"), wxT("Annuler une action"), wxITEM_NORMAL);
ID_MNU_EDITION->Append(myID_CHANGELOWER, wxT("En miniscules"), wxT("Annuler une action"), wxITEM_NORMAL);
ID_MNU_EDITION->AppendSeparator();
ID_MNU_EDITION->Append(ID_OPTIONS, wxT("Préférences \tCtrl+P"), wxT("Préférences"), wxITEM_NORMAL);
// RECHERCHE
wxMenu *ID_MNU_SEARCH = new wxMenu(0);
WxMenuBar1->Append(ID_MNU_SEARCH, wxT("Rechercher"));
ID_MNU_SEARCH->Append(wxID_FIND, wxT("Rechercher \tCtrl+F"), wxT("Rechercher dans la source"), wxITEM_NORMAL);
ID_MNU_SEARCH->Append(ID_SEARCH_NEXT, wxT("Rechercher suivant \tF3"), wxT("Rechercher suivant"), wxITEM_NORMAL);
ID_MNU_SEARCH->AppendSeparator();
ID_MNU_SEARCH->Append(ID_REPLACE, wxT("Remplacer \tCtrl+R"), wxT("Remplacer"), wxITEM_NORMAL);
ID_MNU_SEARCH->AppendSeparator();
ID_MNU_SEARCH->Append(ID_GO_TO, wxT("Aller à"), wxT("Aller à la ligne"), wxITEM_NORMAL);
// LIENS
wxMenu *ID_MNU_LINKS = new wxMenu(0);
WxMenuBar1->Append(ID_MNU_LINKS, wxT("Liens"));
ID_MNU_LINKS->Append(ID_LINK_CPP, wxT("Cppfrance.com"), wxT("Visiter Cppfrance.com"), wxITEM_NORMAL);
// ?
wxMenu *ID_MNU_INFOS = new wxMenu(0);
WxMenuBar1->Append(ID_MNU_INFOS, wxT("?"));
ID_MNU_INFOS->Append(ID_HELP, wxT("Aide \tF1"), wxT("Aide du programme"), wxITEM_NORMAL);
ID_MNU_INFOS->AppendSeparator();
ID_MNU_INFOS->Append(ID_REGISTER, wxT("Enregistrement"), wxT("Enregistrer le programme"), wxITEM_NORMAL);
ID_MNU_INFOS->Enable (ID_REGISTER, false);
ID_MNU_INFOS->Append(ID_UPDATE, wxT("Mise à jour"), wxT("Vérifier les mises à jour"), wxITEM_NORMAL);
ID_MNU_INFOS->Append(ID_DONATE, wxT("Faire un don"), wxT("Faire un don"), wxITEM_NORMAL);
ID_MNU_INFOS->AppendSeparator();
ID_MNU_INFOS->Append(ID_ABOUT, wxT("A propos"), wxT("A propos"), wxITEM_NORMAL);
// Création de la barre de status
WxStatusBar1 = new wxStatusBar(this, ID_WXSTATUSBAR1);
WxStatusBar1->SetFieldsCount(3);
WxStatusBar1->SetStatusText("Prêt",0);
SetStatusBar(WxStatusBar1);
// LISTE SOURCES
WxListCtrl1 = new wxListCtrl(this, ID_WXLISTCTRL1, wxPoint(20,5), wxSize(140,LONGUEUR+30), wxLC_REPORT);
WxListCtrl1->InsertItem(1,"petit bout de code");
WxListCtrl1->InsertItem(2,"autre bout de code");
WxListCtrl1->InsertItem(3,"dernier bout de code");
cs_satellite34
Messages postés688Date d'inscriptionmercredi 6 avril 2005StatutMembreDernière intervention 2 juin 20061 31 août 2005 à 05:48
Re,
désolé mais c' est un dev que j' ai pris en cours derriere d' autres personnes;
j'ai arrangé le code pendant la nuit;ca donne a peu prés ce que je souhaite mais reste ce pb de chevauchements.Merci
1 code plus mieux(hé);je met toute la fonction qui m' interresse
sourcesFrm::sourcesFrm( wxWindow *parent, wxWindowID id, const wxString &title, const wxPoint &position, const wxSize& size, long style )
: wxFrame( parent, id, title, position, size, style)
{
m_edit=new Edit*[1]; // nb objets
// Gestion des fichiers non sauvegardés
int taille = sizeof(Save) / sizeof(Save[0]);
for(int x=0; x<taille;x++)
{
Save[x] = 0;
}
WxFlexGridSizer1 = new wxFlexGridSizer(2, 0, 0);
WxFlexGridSizer2 = new wxFlexGridSizer(2, 0, 0);
// BARRE DE MENUS
WxMenuBar1 = new wxMenuBar();
// FICHIER
wxMenu *ID_MNU_FICHIER_1021_Mnu_Obj = new wxMenu(0);
WxMenuBar1->Append(ID_MNU_FICHIER_1021_Mnu_Obj, wxT("Fichier"));
ID_MNU_FICHIER_1021_Mnu_Obj->Append(wxID_NEW, wxT("Nouveau \tCtrl+N"), wxT("Nouveau"), wxITEM_NORMAL);
ID_MNU_FICHIER_1021_Mnu_Obj->Append(wxID_OPEN, wxT("Ouvrir \tCtrl+O"), wxT("Ouvrir"), wxITEM_NORMAL);
ID_MNU_FICHIER_1021_Mnu_Obj->Append(wxID_CLOSE, wxT("Fermer \tCtrl+F4"), wxT("Fermer la source"), wxITEM_NORMAL);
ID_MNU_FICHIER_1021_Mnu_Obj->Append(ID_MNU_CLOSE_ALL, wxT("Tout fermer"), wxT("Fermer toutes les sources"), wxITEM_NORMAL);
ID_MNU_FICHIER_1021_Mnu_Obj->AppendSeparator();
wxMenu *ID_MNU_EXPORTER_1029_Mnu_Obj = new wxMenu(0);
ID_MNU_FICHIER_1021_Mnu_Obj->Append(ID_MNU_EXPORTER_1029, wxT("Exporter"), ID_MNU_EXPORTER_1029_Mnu_Obj);
ID_MNU_EXPORTER_1029_Mnu_Obj->Append(ID_MNU_EN_TXT_1033, wxT("en .txt"), wxT("exporter en texte"), wxITEM_NORMAL);
ID_MNU_EXPORTER_1029_Mnu_Obj->Append(ID_MNU_EN_HTML_1034, wxT("en .html"), wxT(""), wxITEM_NORMAL);
ID_MNU_EXPORTER_1029_Mnu_Obj->Append(ID_MNU_DSLEFORMATDULANGAGE_1035, wxT("dans le bon format"), wxT(""), wxITEM_NORMAL);
ID_MNU_FICHIER_1021_Mnu_Obj->Append(ID_MNU_IMPORTER_1030, wxT("Importer"), wxT("Importer des sources"), wxITEM_NORMAL);
ID_MNU_FICHIER_1021_Mnu_Obj->AppendSeparator();
ID_MNU_FICHIER_1021_Mnu_Obj->Append(ID_MNU_PROPRIETES, wxT("Propriétés"), wxT("Propriétés de la source"), wxITEM_NORMAL);
ID_MNU_FICHIER_1021_Mnu_Obj->Append(ID_MNU_PRINT,wxT("Imprimer \tCtrl+I"),wxT("Imprimer"), wxITEM_NORMAL);
ID_MNU_FICHIER_1021_Mnu_Obj->AppendSeparator();
ID_MNU_FICHIER_1021_Mnu_Obj->Append(ID_MNU_QUIT, wxT("Quitter \tALT+F4"), wxT("Quitter le programme"), wxITEM_NORMAL);
// EDITION
wxMenu *ID_MNU_EDITION = new wxMenu(0);
WxMenuBar1->Append(ID_MNU_EDITION, wxT("Edition"));
ID_MNU_EDITION->Append(wxID_UNDO, wxT("Annuler \tCtrl+Z"), wxT("Annuler une action"), wxITEM_NORMAL);
ID_MNU_EDITION->Append(wxID_REDO, wxT("Refaire \tCtrl+Y"), wxT("Refaire une action"), wxITEM_NORMAL);
ID_MNU_EDITION->AppendSeparator();
ID_MNU_EDITION->Append(wxID_SELECTALL, wxT("Tout sélectionner \tCtrl+A"), wxT("Tout sélectionner"), wxITEM_NORMAL);
ID_MNU_EDITION->Append(wxID_SELECTALL, wxT("Ne rien sélectionner \tCtrl+E"), wxT("Ne rien sélectionner"), wxITEM_NORMAL);
ID_MNU_EDITION->AppendSeparator();
ID_MNU_EDITION->Append(wxID_CUT, wxT("Couper \tCtrl+X"), wxT("Couper la sélection"), wxITEM_NORMAL);
ID_MNU_EDITION->Append(wxID_COPY, wxT("Copier \tCtrl+C"), wxT("Copier la sélection"), wxITEM_NORMAL);
ID_MNU_EDITION->Append(wxID_PASTE, wxT("Coller \tCtrl+V"), wxT("Coller la sélection"), wxITEM_NORMAL);
ID_MNU_EDITION->AppendSeparator();
ID_MNU_EDITION->Append(ID_CLEAR_ALL, wxT("Effacer tout \tCtrl+C"), wxT("Coller la sélection"), wxITEM_NORMAL);
ID_MNU_EDITION->AppendSeparator();
ID_MNU_EDITION->Append(myID_CHANGEUPPER, wxT("En majuscules"), wxT("Annuler une action"), wxITEM_NORMAL);
ID_MNU_EDITION->Append(myID_CHANGELOWER, wxT("En miniscules"), wxT("Annuler une action"), wxITEM_NORMAL);
ID_MNU_EDITION->AppendSeparator();
ID_MNU_EDITION->Append(ID_OPTIONS, wxT("Préférences \tCtrl+P"), wxT("Préférences"), wxITEM_NORMAL);
// RECHERCHE
wxMenu *ID_MNU_SEARCH = new wxMenu(0);
WxMenuBar1->Append(ID_MNU_SEARCH, wxT("Rechercher"));
ID_MNU_SEARCH->Append(wxID_FIND, wxT("Rechercher \tCtrl+F"), wxT("Rechercher dans la source"), wxITEM_NORMAL);
ID_MNU_SEARCH->Append(ID_SEARCH_NEXT, wxT("Rechercher suivant \tF3"), wxT("Rechercher suivant"), wxITEM_NORMAL);
ID_MNU_SEARCH->AppendSeparator();
ID_MNU_SEARCH->Append(ID_REPLACE, wxT("Remplacer \tCtrl+R"), wxT("Remplacer"), wxITEM_NORMAL);
ID_MNU_SEARCH->AppendSeparator();
ID_MNU_SEARCH->Append(ID_GO_TO, wxT("Aller à"), wxT("Aller à la ligne"), wxITEM_NORMAL);
// LIENS
wxMenu *ID_MNU_LINKS = new wxMenu(0);
WxMenuBar1->Append(ID_MNU_LINKS, wxT("Liens"));
ID_MNU_LINKS->Append(ID_LINK_CPP, wxT("Cppfrance.com"), wxT("Visiter Cppfrance.com"), wxITEM_NORMAL);
// Infos
wxMenu *ID_MNU_INFOS = new wxMenu(0);
WxMenuBar1->Append(ID_MNU_INFOS, wxT("?"));
ID_MNU_INFOS->Append(ID_HELP, wxT("Aide \tF1"), wxT("Aide du programme"), wxITEM_NORMAL);
ID_MNU_INFOS->AppendSeparator();
ID_MNU_INFOS->Append(ID_REGISTER, wxT("Enregistrement"), wxT("Enregistrer le programme"), wxITEM_NORMAL);
ID_MNU_INFOS->Enable (ID_REGISTER, false);
ID_MNU_INFOS->Append(ID_UPDATE, wxT("Mise à jour"), wxT("Vérifier les mises à jour"), wxITEM_NORMAL);
ID_MNU_INFOS->Append(ID_DONATE, wxT("Faire un don"), wxT("Faire un don"), wxITEM_NORMAL);
ID_MNU_INFOS->AppendSeparator();
ID_MNU_INFOS->Append(ID_ABOUT, wxT("A propos"), wxT("A propos"), wxITEM_NORMAL);
// Création de la barre de status
WxStatusBar1 = new wxStatusBar(this, ID_WXSTATUSBAR1);
WxStatusBar1->SetFieldsCount(3);
WxStatusBar1->SetStatusText("Prêt", 0);
SetStatusBar(WxStatusBar1);
//liste des array strings de ListLanguags
wxArrayString arrayStringFor_ListLanguages;
arrayStringFor_ListLanguages.Add(wxT("ASP"));
arrayStringFor_ListLanguages.Add(wxT("C"));
arrayStringFor_ListLanguages.Add(wxT("C++"));
arrayStringFor_ListLanguages.Add(wxT("HTML"));
arrayStringFor_ListLanguages.Add(wxT("Java"));
arrayStringFor_ListLanguages.Add(wxT("PHP"));
arrayStringFor_ListLanguages.Add(wxT("VB"));
arrayStringFor_ListLanguages.Add(wxT("XHTML"));
arrayStringFor_ListLanguages.Add(wxT("XML"));
arrayStringFor_ListLanguages.Add(wxT("Delphi"));
arrayStringFor_ListLanguages.Add(wxT("CSS"));
arrayStringFor_ListLanguages.Add(wxT("Javascript"));
ListLanguages = new wxComboBox(this, ID_ListLanguages, wxT("Choisissez un langage..."), wxPoint(5, 5),
wxSize(145,21), arrayStringFor_ListLanguages, wxCB_SORT, wxDefaultValidator, wxT("ListLanguages"));
// LISTE SOURCES
WxListCtrl1 = new wxListCtrl(this, ID_WXLISTCTRL1, wxPoint(5,30), wxSize(140,LONGUEUR+30), wxLC_REPORT);
WxListCtrl1->InsertItem(1,"petit bout de code");
WxListCtrl1->InsertItem(2,"autre bout de code");
WxListCtrl1->InsertItem(3,"dernier bout de code");
// Apparence de la frame
this->SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_BTNFACE));
this->SetSize(8,8,900,500);
this->Center();
this->SetMenuBar(WxMenuBar1);
this->SetSizer(WxFlexGridSizer2);
}
en fait, je veux que le note book et ces éléments ne puisse pas passer dessous les autres controles qui eux sont figés a gauche de la frame;
Je pense, que je veux définir un point d'arret au sizer (hum, chui pas bien sur la...).
Merci.
fredcl
Messages postés547Date d'inscriptionmercredi 8 janvier 2003StatutMembreDernière intervention 7 octobre 20071 31 août 2005 à 09:07
Bonjour,
C'est vrai que c'est pas clair!
Bon apparement certain contrôles sont dans des wxSizer d'autres non, et c'est la qu'est le problème :
Soit tu utilises les wxSizer pour tous les contrôles.
Soit tu ne les utilises pour aucun.
Si tu pouvais poster une petite copie d'écran de ta fenêtre (ou même un dessin de ce que tu veux) ça permettrais de voir clairement la position des éléments et te fournir un exemple concret.
cs_satellite34
Messages postés688Date d'inscriptionmercredi 6 avril 2005StatutMembreDernière intervention 2 juin 20061 1 sept. 2005 à 15:18
Bonjour,
Tout d' abord merci pour ton exemple , ça marche super bien, les controles ne se chevauchent pas et se size correctement.
Cependant, il me reste un petit souci à éclaircir(le dernier avec les sizers je pense):
Dans mon notebook j' ai un wxPanel et un wxStyledTextCtrl;
Lorsque je n' ai que le notebook dans le sizer ca marche super mais dés que je met le panel et l' edit, ca ne marche plus et j' obtient :
http://satellitesound.free.fr/RESIZE.JPG
le note book change de taille et le panel et l'edit ne sont plus la!
voila le code que j' utilise :
// Sizers
bSizerH = new wxBoxSizer(wxHORIZONTAL);
bSizerV = new wxBoxSizer(wxVERTICAL);
bSizerH->Add(bSizerV, 0, wxGROW|wxALL, 5);
Enfin, si vous avez un peu de temps pour m' expliquer en quoi réside les principales différences entre les différent types de sizers et dans quelle situation utiliser tel ou tel sizer ca serai simpa.
boutonnet
Messages postés13Date d'inscriptiondimanche 26 novembre 2000StatutMembreDernière intervention18 novembre 20051 27 sept. 2005 à 14:58
Bonjour, je galere actuellement pour positionner correctement mes
controles sur ma Frame. Je debute et connais a peine les sizers .
Je dispose d'un wxTextCtrl et d'une wxListCtrl. Je voudrais les
afficher sur toute la longueur et la largeur de ma Frame avec
wxListCtrl a gauche et wxTextCtrl a droite.
Pour l'instant , j'ai cree trois wxBoxSizer avec un dans lequel je met
ma "List" , un autre mon "TextCtrl" et un dernier dans lequel je
positionne ces deux wxBoxSizer