begin process at 2010 02 10 02:01:29
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

[MFC] Onglet marchent en debug, pas en release


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

[MFC] Onglet marchent en debug, pas en release

vendredi 13 mai 2005 à 13:04:33 | [MFC] Onglet marchent en debug, pas en release

sakuragikan

Bonjour !

J'ai un bug qui apparait en release mais pas en debug, au niveau des onglets de ma Tab, qui appartient a une dialogue box.
Je sais que ce type de probleme a ete souvent traite ici, pourtant je ne vois ni pointeur nul ni depassement de mémoire.

Le bug apparait en release lorsque je clique sur le 2e ou le 3e onglet (il y en a trois). En mode debug, tout fonctionne correctement.

Voici le code :
dans le Begin/End_msg_map :
Code:

ON_NOTIFY(TCN_SELCHANGE, IDC_TAB1, OnSelchangeTabMode)


La fonction d'initialisation des tab :
Code:
void CContributionDlg::InitTab()
{

      //initialize the tab control
      int index;
      TC_ITEM TabCtrlItem;
      CString Caption;

      
      
      //common data for all tabs
      TabCtrlItem.mask= TCIF_TEXT;   //only setting text
      TabCtrlItem.cchTextMax= 0;      //ignored if the structure is not receiving information
      TabCtrlItem.iImage= -1;         //no image
      TabCtrlItem.lParam= 0;         //no specific data

      //tab specific data 
     TabCtrlItem.pszText=  "Onglet1";      //the string is copied
      index=m_tab.InsertItem(ONGLET1_TAB, &TabCtrlItem); 

      TabCtrlItem.pszText=  "Onglet2";    //the string is copied
      index=m_tab.InsertItem(ONGLET2_TAB, &TabCtrlItem); 

      TabCtrlItem.pszText=  "Onglet3";    //the string is copied
      index=m_tab.InsertItem(ONGLET3_TAB, &TabCtrlItem);

      //first tab selectionned on init
      m_tab.SetCurSel(ONGLET1_TAB);
      Display_1_List();   
}



La fonction qui gere le changement d'onglet :
le bug release se produit ici, juste avant le break correspondant aux onglets 2 et 3, l'AfxMessageBox passe tres bien, ce qui permet de voir que l'onglet est selectionné et que la listbox s'affiche bien, et puis le crash survient juste apres.
Code:
void CContributionDlg::OnSelchangeTabMode()
{
   //get currently selected tab

   int index=0;
   index=m_tab.GetCurSel();
   
   switch  (index)
   {
   case ONGLET1_TAB:
         Display_List1();
         break;

   case ONGLET2_TAB:
         Display_List2();
         AfxMessageBox("passe");
         break;
         

   case ONGLET3_TAB:
         Display_List3();
         break;
   }
   
}
Et puis les fonctions appelées lors du changement d'onglet : une listbox differente s'affiche selon l'onglet selectionné.
Code:
void CContributionDlg::Display_List1()
{
   m_ArticleList1.ShowWindow(SW_SHOW);
   m_ArticleList2.ShowWindow(SW_HIDE);
   m_ArticleList3.ShowWindow(SW_HIDE);
}
void CContributionDlg::Display_List2()
{
   m_ArticleList2.ShowWindow(SW_SHOW);
   m_ArticleList1.ShowWindow(SW_HIDE);
   m_ArticleList3.ShowWindow(SW_HIDE); 
 }
void CContributionDlg::Display_List3()
{
   m_ArticleList3.ShowWindow(SW_SHOW);
   m_ArticleList2.ShowWindow(SW_HIDE);
   m_ArticleList1.ShowWindow(SW_HIDE);
}


merci d'avance pour votre aide Wink
samedi 14 mai 2005 à 13:20:54 | Re : [MFC] Onglet marchent en debug, pas en release

mezaya

je connais pas bien le mfc, mais quand tu a un probleme entre le mode debug et release cela vient a 90% des initialisations pas faite. le mode Debug fait automatiquement des initialisations alors que le mode Release ne le fait pas

Voili,Voilou
lundi 16 mai 2005 à 10:56:27 | Re : [MFC] Onglet marchent en debug, pas en release

sakuragikan

Hehe !

Merci de ta reponse Mezaya, je viens de resoudre mon probleme, et j'etais dans les autres 10% ^_^

Pour info, j'avais declarée ma fonction (ds le header file) comme ceci :
void OnSelchangeTabMode();

Alors qu'il faut la declarer comme cela, dans les afx-msg... :

afx_msg void OnSelchangeTabMode(NMHDR* pNMHDR, LRESULT* pResult);

et faire *pResult = 0 au lancement de la fonction.
Je suis débutant, je ne comprends pas trop ce que sont les afx_msg, mais dedieu ca marche


Cette discussion est classée dans : tab, showwindow, onglet, index, tabctrlitem


Répondre à ce message

Sujets en rapport avec ce message

Rendre invisible un onglet d'un tab control [ par cyko ] Bonjour, Je suis en train de develloper une application en Visual C++ . Dans un de mes formulaires, j'ai un tab control avec cinq onglets.Jusque la pa Prob Tab control avec VC++ [ par loicus ] Bon voila, j'aimerais rajouter un Tab COntrol dans une DialogBox, Mais quand j'en ajoute une avec VC++ grace a l'editeur de ressource (dialogbox)de 1 Tab Control [VC6] [ par thebigbang ] Bonjour à vous tous,J'ai voulu insérer un Tab Control dans un projet.J'ai réussi en partie grâce à la source de BruNews. Merci à luiCependant dans cet Obtenir les coordonée de l'onglet d'un controle tab [ par Neo_Fr ] Bonjour, Je cherche a faire un menu pour fermer les onglet d'un tab control, j'ai fait le menu le probleme c'est qu'il est utilisable sur toute la fen Onglets personalisés avec TabControl [ par Scuz ] Bonjour, Je suis débutant, et j'ai un peu de mal avec les onglets : j'ai récupéré le projet de farscape sur les TabControl, qui est très pratique, mai Pb avec graphe en C++ [ par gargourifahmi ] Salut à tous,Je suis en train d'implémenter un graphe basé sur les listes d'adjacence.En première étape, j'ai essayé d'initialiser le tableau de point Ecrire colonne par colonne dans un fichier xls [ par Pistol_Pete ] Bonjour à tous,J'essaie desespérément de remplir un tableau xls colonne par colonne. En effet, après avoir remplit la première colonne, je reviens au Pourquoi certaine machine accepte le tab[-1] et d'autre non [ par Booster ] Bonjour à tous, J'ai une question toute bête. J'ai créé un programme qui tourne sur mon PC de bureau et qui ne plante pas... <span class="mod" title [Débutant]Problème en mode Debug Seulement [ par italyblaa ] Bonjour,J'ai un petit problème avec ce  codel'application marche super bien en mode realese mais une fois sur Debug ça plante avec l'erreur suivante : tableau/procédure [ par nopnop77 ] Bonjour !Voila j'ai un problème à passer un tableau en paramètre entrée/sortie pour une procédure.Voici un code simplifié:#include using namespace std


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,187 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales