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 :

Débutant C++.net Besoins d'aide !!!


Sujet :

MFC

  1. #21
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075

  2. #22
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 96
    Points : 33
    Points
    33
    Par défaut
    Merci pour ton lien il est très utile mais je n'arrive toujours pas à dérivé ma classe vignette de la classe Panel.Tout ce que j'ai fait pour le moment c'est créée ma classe et un #include de ma classe dans mon formulaire.En rajoutant le "ref" devant ma classe j'obtient 2 erreur de plus :

    error C2143: syntax error : missing ';' before '<class-head>'
    error C2501: 'ref' : missing storage-class or type specifiers
    +
    Les 2 précédentes.
    J'ai regarder le code d'erreur sur MSDN mais il ne dit pas comment la résoudre:
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/vcerrCompilerErrorC3625.asp

    Aidez-moi !

  3. #23
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    montre ton nouveau code

  4. #24
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 96
    Points : 33
    Points
    33
    Par défaut
    C'est il falait mettre "__gc class" devant
    Maintenant que j'ai mon panel j'aimerai que avec la souris en maintenant le bouton gauche on puisse le déplacer.
    Comment puis-je faire ?

    Je pense a l'event Mousedown mais je c'est pas comment l'initialiser et l'utiliser (du moins en C++.net)?

    HELP

  5. #25
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    ok, excuse moi, je t'avais indui en erreur, j'avais mal vu ton code et je te croyais sous VS2005 ...

    pour générer l'evenement, tu cliques sur le bouton "events" dans la fenetre de propriétés et tu cherches le mousedown

  6. #26
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 96
    Points : 33
    Points
    33
    Par défaut
    Pas grave c'est partie grâce à toi que j'en suis là ^^
    Je sais bien que dans la fenêtre propriété on trouve l'event mouse down mais je veux l'appliquer à mon objet vignette hérité précédemment de Panel.
    Je pensai à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    vig->add_MouseDown(new MouseEventHandler(
    Mais là encore quoi mettre après le MouseEvent Handler(????)

    voilà ce que j'ai fait à présent:

    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
    vig = new vignette;
    			 vig->BorderStyle = BorderStyle::FixedSingle;
    			 vig->setnom(txtnom->Text);
    			 vig->setCordX(Convert::ToInt16(X->Value));
    			 vig->setCordY(Convert::ToInt16(Y->Value));
    			 vig->setDimHei(Convert::ToInt16(Hei->Value));
    			 vig->setDimWid(Convert::ToInt16(Wid->Value));
    			 vig->setFbot(Convert::ToInt16(FrameB->Value));
    			 vig->setFleft(Convert::ToInt16(FrameL->Value));
    			 vig->setFrig(Convert::ToInt16(FrameR->Value));
    			 vig->setFtop(Convert::ToInt16(FrameT->Value));
    			 vig->setFramedS(framedskin);
    			 vig->setUVMiror(uvmiror);
    			 vig->setUVMiror(uvflip);
    			 vig->set_Height(vig->getDimHei());
    			 vig->set_Width(vig->getDimWid());
    			 vig->set_Location(Point(vig->getCordX(),vig->getCordY()));
    			 vig->add_MouseDown(new MouseEventHandler(..................)
    			 this->Close();
    As-tu une idée ? :

  7. #27
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    quelque chose du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    vig->MouseDown += new System::Windows::Forms::MouseEventHandler(this, vig_MouseDown);

  8. #28
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 96
    Points : 33
    Points
    33
    Par défaut
    J'ai pensé à cette synthaxe mais lorsque que j'écrit vig-> je n'ai pas MouseDown.Quand je crée une nouvelle intance de panel Panel *p il n'a pas également la propiété MouseDown.Le code que tu vien de me passer je pense qu'il passe sous C# mais pas sous C++.net.
    Je crois qu'il faut utiliser la fonction add_MouseDown

  9. #29
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    la vignette ne dérive pas du panel ?

  10. #30
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 96
    Points : 33
    Points
    33
    Par défaut
    Si ! Ma classe vignette (celle que j'ai crée) dérive de la classe panel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    __gc class vignette : public System::Windows::Forms::Panel
    Je t'ai mis précédemment une aperçu de cette classe

  11. #31
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    ote moi d'un doute, est-ce que tu as bien crée un nouveau controle pour ta vignette ?
    comment l'as-tu créée ta classe vignette ?

  12. #32
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 96
    Points : 33
    Points
    33
    Par défaut
    Je sais pas trop ce que tu entend par controle mais voilà ce que j'ai fait :
    Déclaration :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private: vignette* vig;
    Instancier :
    Attribut:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    this->vig->BorderStyle = BorderStyle::FixedSingle;
    this->vig->setnom(f2->getnom());
    this->vig->setCordX(f2->getcordX());
    this->vig->setCordY(f2->getcordy());
    this->vig->setDimHei(f2->getdimhei());
     
    Etc....
    Quand à ma classe vignette c'est un .h que j'ai rajouter avec "Add new item"
    Ensuite j'ai rédiger mes attributs en private et methode get set en public.
    J'ai trouver un tutos sur l'event mousedown
    mais l'instruction "add_MouseDown(new MouseEventHandler(this,....));"
    ne passe pas dans mon prog.
    Que dois-je mettre après le "this,"VC me demande un "System::IntPtr"

    http://www.functionx.com/vcnet/controls/mouse.htm

    je pense qu'avec ça tu pourra m'aider...

    Merci

  13. #33
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    alors,
    il ne faut pas faire ca

    il faut que tu ajoutes un nouveau projet à ta solution, et que tu crées un projet de type Window Control Library (.net)
    Tu rentres dans le .h, et tu changes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public __gc class Form1 : public System::Windows::Forms::UserControl
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public __gc class Form1 : public System::Windows::Forms::Panel
    Normalement, ton controle s'est ajouté automatiquement dans la barre d'outils "my user controls".
    C'est lui que tu vas placer sur ta form, et intercepter ensuite classiquement l'événement MouseDown

  14. #34
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 96
    Points : 33
    Points
    33
    Par défaut
    Ta méthode revient un peu à celle que j'ai faite précédement, car quand je fais "vig->" je n'ai pas MouseDown, uniquement "add_MouseDown".
    En fait lorsque je dépose mon controlsuser sur la form et que je vais dans ses propriété il y a bien l'event MouseDown seulement l'objet "vig" que je veux ajouter a ma form n'est pas déposer à l'avance je la crée manuellement:
    puis je l'ajoute:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tabPage1->Controls->Add(this->vig);
    seulement après il faut que je crée sont event MouseDown.

    J'espère que tu comprendras...

  15. #35
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    ok, et ca te fait une erreur de compil ou bien ca marche pas ?

  16. #36
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 96
    Points : 33
    Points
    33
    Par défaut
    Sachant que je ne sais pas quoi mettre dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    vig->add_MouseDown(new MouseEventHandler(.................));
    ça plantera sûrement.
    J'ai essayer ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this->vig->add_MouseDown(new MouseEventHandler(this,vig_MouseDown));
    mais j'obtient les erreurs suivantes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    error C2065: 'vig_MouseDown' : undeclared identifier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    error C3350: 'System::Windows::Forms::MouseEventHandler' : a delegate constructor expects two arguments

  17. #37
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    tu as déclaré la fonction vig_MouseDown ? suivant le meme prototype que les autres événements ?

  18. #38
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 96
    Points : 33
    Points
    33
    Par défaut
    euh...non je n'ai pas crée de void à l'occasion.Où suis-je cencé la crée ?
    Et quand tu dit même protocole que les autres tu veux sûrement parler du code généré quand on clic sur un event dans la boite de propriété ?
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private: System::Void menuzoom25_Click(System::Object *  sender, System::EventArgs *  e)
    voilà ce que j'ai essayer de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private: System::Void vig_MouseDown(System::Object * sender, System::EventArgs * e)
    et voilà l'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    error C3352: 'void UVEdit::Form1::vig_MouseDown(System::Object __gc *,System::EventArgs __gc *)' : the specified function does not match the delegate type 'void (System::Object __gc *,System::Windows::Forms::MouseEventArgs __gc *)'

  19. #39
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    attention, tu ne déclares pas les memes prototypes :

    il faut donc faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    vig->add_MouseDown(new MouseEventHandler(this, vig_MouseDown));
    et la fonction qui recoit les évenements :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	private: System::Void vig_MouseDown(System::Object *  sender, System::Windows::Forms::MouseEventArgs *  e)
    			 {
     
    			 }

  20. #40
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 96
    Points : 33
    Points
    33
    Par défaut
    Exact ! Merci ! J'ai même réussi avec l'ancienne méthode que tu m'as donner
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this->vignette1->MouseDown += new System::Windows::Forms::MouseEventHandler(this, vignette1_MouseDown);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private:System::Void vignette1_MouseDown(System::Object * sender, System::Windows::Forms::MouseEventArgs * e)
    J'en vien au point essentiel :
    J'aimerai que quand l'utilisateur maintient le bouton gauche enfoncé il puisse déplacer sur l'écran le panel (vignette) et je ne vois vraiment pas comment faire ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(e->Button == MouseButtons::Left){ ???????????? }

Discussions similaires

  1. vb.net besoin d'aide..
    Par Alex35 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 03/12/2007, 16h21
  2. débutant sur mysql besoin d'aide
    Par feragne dans le forum Débuter
    Réponses: 9
    Dernier message: 05/06/2007, 13h07
  3. [Vb.net] Besoin d'aide pour générer des graphs
    Par NicoNGRI dans le forum ASP.NET
    Réponses: 2
    Dernier message: 12/12/2006, 19h33
  4. [VB.NET] besoin d'aide pour déchiffrer un code
    Par pcdj dans le forum Windows Forms
    Réponses: 10
    Dernier message: 27/06/2006, 12h32
  5. Débutant qui a besoin d'aide
    Par BerneyBoy dans le forum Langage
    Réponses: 1
    Dernier message: 14/01/2006, 22h33

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