Bonjour,

je dois réaliser une appli windows qui permet de lire des fichiers csv et créer un fichier excel.
J'avais déja réalisé ce programme sous excel en vba mais suite à l'internationalisation du programme (français, japonais, turc....) et des différentes versions d'excel utilisés (95 à XP 2003), certains utilisateurs recontrent des problemes.

Du coup le choix fut fait de passer ce programme en C++, histoire de ne plus avoir de soucis.
Cette fois ci les soucis sont pour moi, mes connaissances en C++ étant très limité (pas pratiqué depuis les td de mon bts).

Mon probleme concerne le changement d'écran permettant le traitement des fichiers. Je m'explique.
Il y a trois écrans ou plus exactement 3 formview (j'ai créé un projet ayant comme affichage des formview)

- le premier formview (fichier MainView.cpp) affiche 2 boutons radio proposant une analyse du contenu des fichiers par mois ou par période.

- le deuxième formview (fichier Month.cpp) affiche ces memes boutons radio, qui serve de navigation, et une listbox contenant la liste de smois disponible, ainsi qu'un simple bouton lancant l'analyse apres sélection du mois.

- le troisième formview (fichier Period.cpp) affiche les deux boutons radio et 6 listbox pour définir la période choisi (2 listbox pour le jour, le moi et l'année dont un pour le début et l'autre pour la fin de période).

j'arrive à changer d'affichage en passant par un menu avec ce type de code lancant une fonction SwitchToForm présente dans mon fichier MainFrm.cpp:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
void CMainFrame::SwitchToForm(int nForm){
     CView* pOldActiveView = GetActiveView();
     CView* pNewActiveView = (CView*)GetDlgItem(nForm);
 
     if (pNewActiveView == NULL){
          switch(nForm){
               case IDD_MAIN_FORM:
               pNewActiveView = (CView*)new CMainView;
               break;
 
               case IDD_MONTH_FORM:
               pNewActiveView = (CView*)new CMonth;
               break;
 
               case IDD_PERIOD_FORM:
               pNewActiveView = (CView*)new CPeriod;
               break;
          }
 
          CCreateContext context;
          context.m_pCurrentDoc = pOldActiveView->GetDocument();
          pNewActiveView->Create(NULL, NULL, 0L, CFrameWnd::rectDefault, this, nForm, &context);
          pNewActiveView->OnInitialUpdate();
     }
 
     SetActiveView(pNewActiveView);
     pNewActiveView->ShowWindow(SW_SHOW);
     pOldActiveView->ShowWindow(SW_HIDE);
 
     ::SetWindowWord(pNewActiveView->m_hWnd, GWL_ID, AFX_IDW_PANE_FIRST);
     RecalcLayout();
     delete	pOldActiveView;
}
l'appel de cette fonction se fait comme cela sur le menu:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
void CMainFrame::OnForm1() {
     SwitchToForm(IDD_MAIN_FORM);	
}
void CMainFrame::OnUpdateForm1(CCmdUI* pCmdUI) {
     pCmdUI->Enable(GetActiveView()->GetRuntimeClass()!=RUNTIME_CLASS(CMainView));
}
Or je souhaite que ce changement se fasse lors du click sur le bouton radio.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
void CMainView::OnReportType0() 
{	
}
Quel propriété dois je employer pour éaliser cette action.
S'il faut je suis pret à passer sou Visual Studio.net, s'il y a un code plsu pratique

Pardon pour la longueur de l'explication du débutant niveau 0 que je suis en C++, et merci pour votre aide