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] Insertion de Toolbar


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 47
    Par défaut [MFC] Insertion de Toolbar
    Bonsoir à tous,

    alors, je poste ce sujet, car je n'arrive pas à me dépatouiller avec une CToolBar, la MSDN, les FAQ, et les posts déja présents sur le forum...

    Alors, voila, je voudrais inserer une CToolBar dans mon appli MFC.

    Donc, j'ai créé une ToolBar, nommée IDR_TOOLBAR1 dans l'editeur de ressources de VS2005.

    Ensuite, dans mon OnInitDialog de mon appli, j'ai suivi ce qui était dit dans la MSDN, c'est à dire, ce code ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
            CToolBar toolbar;
    	toolbar.Create(this,CBRS_TOP,IDD_FIRSNAKE_DIALOG);
    	toolbar.LoadToolBar(IDR_TOOLBAR1);
    Je n'ai pas d'erreur à ce niveau.

    Par contre, après compilation, lors du lancement de mon appli, pas de toolbar en vue...

    Ce qui me chagrine, c'est que je créé ma toolbar, mais je ne "l'incruste" pas dans ma fenetre, et je n'ai pas trouvé la methode pour...
    donc, quelqu'un pourrait-il m'expliquer le principe de mise en place des toolbars sous VS2005 utilisant MFC ??

    Merci,
    Sebpsi.

  2. #2
    Membre émérite
    Avatar de Spout
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2007
    Messages : 904
    Par défaut
    Essaye de recopier scrupuleusement l'exemple de la FAQ (ici) pour après revenir à ce que toi tu veux, tu y arriveras sûrement mieux! Bon courage

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 47
    Par défaut
    alors, le probleme, c'est que si j'ai bien compris la FAQ, normalement on a une methode deja existante que s'appelle "OnCreate()". Or, pour mon appli qui s'appelle FIR-Snake, basée sur les MFC, ma classe mère s'appelle FIR-Snake.h, avec la création de la boite de dialogue dans la classe FIR-SnakeDlg.h...

    Or, dans cette classe mère, il n'existe aucune méthode OnCreate()...

    J'ai seulement la méthode InitInstance()... Et, ca ne fonctionne pas dans la méthode InitInstance()...

    Donc, je ne vois vraiment pas comment faire...

  4. #4
    Membre émérite
    Avatar de Spout
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2007
    Messages : 904
    Par défaut
    Le OnCreate, c'est la méthode CWnd dans laquelle tu peux mettre les initialisations de ta boîte de dialogue, c'est une méthode à surcharger. Dans ta classe de dialogue, FIR-SnakeDlg, tu dois implémenter la OnInitDialog() et mettre tes initialisations (donc la création de ta toolbar) dedans.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 47
    Par défaut
    C'est donc bien ce que j'avais fait dans mon 1er message...

    La fonction donnée dans la FAQ permet juste d'avoir un TRACE en mode debug...

    Sinon, elle ne fait que creer la toolbar...

    Et si on regarde bien, j'avais ecrit a peu pres pareil, mais sans le TRACE...

    J'ai donc repris leurs parametres de creation de toolbar, en adaptant bien sur le nom de mon toolbar (IDR_TOOLBAR1), mais rien n'y fait...

    Je crois que l'on tourne en rond...

  6. #6
    Membre émérite
    Avatar de Spout
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2007
    Messages : 904
    Par défaut
    Excuse-moi d'insister, mais si je vois bien l'exemple de la FAQ:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     ...
    if(!m_ToolBar.Create(this, WS_CHILD | WS_VISIBLE | CBRS_TOP) || !m_ToolBar.LoadToolBar(IDR_TOOLBAR))
    ...
    il y a des flags genre WS_VISIBLE que tu n'as plus par défaut si tu mets autre chose à la place (CBRS_TOP dans ton cas). Libre à toi de mettre autre chose que les valeurs par défaut pour le deuxième paramètre, mais il faut (je pense) au moins mettre le flag WS_VISIBLE non? Et peut-être même WS_CHILD. Je n'ai pas essayé, je ne te certifie pas que ça va marcher, mais quand je te disais de recopier scrupuleusement la FAQ, c'est justement pour voir l'influence de ce genre de modifications.
    Tiens-moi au courant.

  7. #7
    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
    Citation Envoyé par sebpsi
    C'est donc bien ce que j'avais fait dans mon 1er message...

    La fonction donnée dans la FAQ permet juste d'avoir un TRACE en mode debug...

    Sinon, elle ne fait que creer la toolbar...

    Et si on regarde bien, j'avais ecrit a peu pres pareil, mais sans le TRACE...

    J'ai donc repris leurs parametres de creation de toolbar, en adaptant bien sur le nom de mon toolbar (IDR_TOOLBAR1), mais rien n'y fait...

    Je crois que l'on tourne en rond...
    salut,
    ton code ne risque pas de fonctionner,
    parce qu'il n'est pas positionné au bon endroit :
    il doit être dans la mainframe pour du SDI,et dans la mdichild pour du MDI.
    quand aux arguments tu es loin du compte ...
    tu devrais tenir compte des remarques et conseils de spoutspout...

Discussions similaires

  1. Réponses: 1
    Dernier message: 29/06/2007, 15h13
  2. [MFC] Insertion d'une chaine de caractère dans une BD
    Par julien.nasser dans le forum MFC
    Réponses: 2
    Dernier message: 20/04/2006, 15h19
  3. [MFC] Redimensionnement de ToolBar
    Par windsurfeur44 dans le forum MFC
    Réponses: 7
    Dernier message: 15/09/2004, 19h43
  4. [MFC][Toolbar] Aligner les toolbars
    Par 6psyk9 dans le forum MFC
    Réponses: 3
    Dernier message: 17/05/2004, 21h58

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