IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

[MFC] SDI - pb avec OnInitialUpdate()


Sujet :

MFC

  1. #1
    R�dacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Par d�faut [MFC] SDI - pb avec OnInitialUpdate()
    bonjour,

    j'ai pas r�ussi � trouver un titre court et explicite pour mon pb, d�sol�

    j'ai un projet SDI. j'ai mis un CTabCtrl dans ma CFormView.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    // dans le .h
    CMyTabCtrl	m_ViewTab;
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    void CCOACH_equipeView::DoDataExchange(CDataExchange* pDX)
    {
    	CFormView::DoDataExchange(pDX);
    	//{{AFX_DATA_MAP(CCOACH_equipeView)
    	DDX_Control(pDX, IDC_VIEWTAB, m_ViewTab);
    	//}}AFX_DATA_MAP
    }
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    void CCOACH_equipeView::OnInitialUpdate()
    {
    	CFormView::OnInitialUpdate();
    	GetParentFrame()->RecalcLayout();
    	ResizeParentToFit();
     
    	m_ViewTab.DeleteAllItems();
    	// Création des onglets
    	m_ViewTab.InsertItem(0, _T("    &Feuille de match      "));
    	m_ViewTab.InsertItem(1, _T("   &Classement individuel   "));
    	m_ViewTab.InsertItem(2, _T(" &Classement individuel IWF "));
     
    	m_ViewTab.Init();
    }
    Lorsque je lance mon appli, les 3 onglets apparaissent et je peux passer de l'un � l'autre (ouf!).
    Le probl�me, c'est quand je clique sur Nouveau (le bouton de la CToolBar ou dans le menu fichier). L� mon appli plante. j'ai une jolie MessageBox qui s'affiche avec le message suivant :

    Debug Assertion Failed

    Program: bidule.exe
    File: wincore.cpp
    Line: 668
    pour info, dans wincore.cpp je trouve
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    ASSERT(pWnd->m_hWnd == NULL);   // only do once
    J'obtiens le m�me plantage si j'ouvre un fichier de donn�es (bouton Ouvrir du CToolBar ou dans le menu Fichier).

    Tant que je ne mets pas de CTabCtrl, tout va bien : mon prog lit le fichier de donn�es, peut sauvegarder dans un fichier... (mais ya pas d'affichage sans le CTabCtrl )

    Tout � commencer � foirer quand j'ai tripot� le OnInitialUpdate().

    Quelqu'un voit mon erreur? ou mon oubli (de quelquechose de vachement important)

    Merci

    PS : la classe CMyTabCtrl marche nickel, je l'ai utilis� pour un projet dialog based.

  2. #2
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    salut,
    quand tu remontes la pile des appels quel est l'objet concern� par :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    ASSERT(pWnd->m_hWnd == NULL);

  3. #3
    R�dacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Par d�faut
    bien le bonjour

    CTab1 est une bo�te de dialogue que j'ai mis dans le premier volet du CMyTabCtrl

    CTab1 est style CHild, sans bord, et ne contient que les boutons OK et CANCEL pour l'instant.


  4. #4
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    re,
    tu as mis un point d'arret dans initialupdate pour voir combien de fois elle est appel�e ?
    autre point par quoi est appel� afxHookwindowcreate. ?


  5. #5
    R�dacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Par d�faut
    OnInitialUpdate() est appel� une fois ( ) � l'ex�cution. puis � chaque fois que je clique sur Nouveau ou sur que j'ouvre un fichier.

    autre point par quoi est appel� afxHookwindowcreate. ?
    euh... k�kidi le monsieur?? comment je fais pour savoir o� il est appel�?

    (merci les �coles d'ing� o� l'on ne programme qu'en lignes de commande avec gcc)

  6. #6
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    sur le screen shot que tu as mis il y a une combobox context �a permet de voir la pile des appels .
    pour ton pb il faut faire en sorte que les initialisations sur le tabctrl se fassent une fois .
    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
     
    void CCOACH_equipeView::OnInitialUpdate()
    {
    if( m_bInit) // a mettre dans le constructeur a true.
    {
       CFormView::OnInitialUpdate();
       GetParentFrame()->RecalcLayout();
       ResizeParentToFit();
     
       m_ViewTab.DeleteAllItems();
       // Création des onglets
       m_ViewTab.InsertItem(0, _T("    &Feuille de match      "));
       m_ViewTab.InsertItem(1, _T("   &Classement individuel   "));
       m_ViewTab.InsertItem(2, _T(" &Classement individuel IWF "));
     
       m_ViewTab.Init();
    }
    m_bInit=false;
    }

  7. #7
    R�dacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Par d�faut
    c cool merci !

    (ya des soucis avec le forum aujourd'hui? j'ai du mal � me connecter de temps en temps)

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 5
    Dernier message: 30/05/2006, 11h11
  2. R�ponses: 21
    Dernier message: 09/02/2005, 08h35
  3. [MFC] SDI - actualisation de CGridCtrl
    Par bigboomshakala dans le forum MFC
    R�ponses: 4
    Dernier message: 27/11/2004, 20h12
  4. [MFC/SDI] BMP a la place d'un bouton
    Par gargle dans le forum MFC
    R�ponses: 2
    Dernier message: 28/07/2004, 11h26
  5. R�ponses: 4
    Dernier message: 14/06/2004, 09h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo