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

C++/CLI Discussion :

[FAQ] Déplacé un controle (<=> Déplacé le Forms)


Sujet :

C++/CLI

  1. #1
    S2S
    S2S est déconnecté
    Membre chevronné Avatar de S2S
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2006
    Messages : 336
    Par défaut [FAQ] Déplacé un controle (<=> Déplacé le Forms)
    lu
    Pour déplacé un winforms SANS barre de titre, (sous VC++ 2005 express )
    j'ai creer un bouton, et je souhaite adapté ce code (trouvé dans la FAQ):
    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
     
    //Position de la souris lorsque le bouton a été enfoncé
    Point ^positionClick;
    //
    // Notifie si le bouton de la souris a été enfoncé sur le PictuBox
    //
    private: System::Void pictureBox1_MouseDown(System::Object^  sender, System::Windows::Forms::MouseEventArgs^  e) {
    	// Vérification si bouton gauche de la souris est bien enfoncé
    	if (e->Button == System::Windows::Forms::MouseButtons::Left)
    			positionClick = e->Location;
    	}
    // Notifie si le curseur se déplace au dessus du PictureBox
    private: System::Void pictureBox1_MouseMove(System::Object^  sender, System::Windows::Forms::MouseEventArgs^  e) {
    	// Vérification si bouton gauche de la souris est bien enfoncé
    	if (e->Button == System::Windows::Forms::MouseButtons::Left) {
    			// Calcul de la nouvelle position du PictureBox
    			pictureBox1->Location = Point(pictureBox1->Location.X + e->X - positionClick->X, 
    						      pictureBox1->Location.Y + e->Y - positionClick->Y);
    	}
    }
    ...aux évenement mouseDown et mouseMove d'un bouton 'buttonMove',
    MAIS au lieu de déplacé le controle, je veux déplacé le Form
    j'ai donc le code suivant:
    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
     
    //j'ajoute les declarations de form1 et buttonMove
    public ref class Form1 : public System::Windows::Forms::Form
    private: System::Windows::Forms::Button^  buttonMove;
    ...
    // Position de la souris lorsque le bouton a été enfoncé 
    Point ^positionClick;
     // Notifie si le bouton de la souris a été enfoncé sur le button
    private: System::Void buttonMove_MouseDown(System::Object^  sender, System::Windows::Forms::MouseEventArgs^  e) {
    	// Vérification si bouton gauche de la souris est bien enfoncé
    	 if (e->Button == System::Windows::Forms::MouseButtons::Left) {
    		positionClick = e->Location;
    	 	}
    	 }
    	 //
    	 // Notifie si le curseur se déplace au dessus du button
    private: System::Void buttonMove_MouseMove(System::Object^  sender, System::Windows::Forms::MouseEventArgs^  e) {
    	// Vérification si bouton gauche de la souris est bien enfoncé
    	if (e->Button == System::Windows::Forms::MouseButtons::Left) {
    		// Calcul de la nouvelle position du Forms
    		Form1->Location = Point(Form1->Location.X + e->X - positionClick->X,
    					Form1->Location.Y + e->Y - positionClick->Y);
    		}
    	 }
    la derniere formule (ligne 187 - 'Form1->Loc...') pose un probleme:
    Form1.h(187) : error C2143: erreur de syntaxe*: absence de ';' avant '->'
    XP-AL - 2 erreur(s), 0 avertissement(s)
    ======== Régénération globale*: 0 a réussi, 1 a échoué, 0 a été ignoré ========
    pas d'erreur si je remplace Form1 par buttonMouse (mais evidement ca deplace le bouton et non le forms)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    buttonMove->Location = Point(buttonMove->Location.X + e->X - positionClick->X,
    			     buttonMove->Location.Y + e->Y - positionClick->Y);
    XP-AL - 0 erreur(s), 0 avertissement(s)
    ======== Régénération globale*: 1 a réussi, 0 a échoué, 0 a été ignoré ========
    la meme erreur si je remplace Form1 par Form (ou par System::Windows::Forms::Form)
    cela vien t'il du fait que j'essai de controler le forms (public) depui un controle (privé)...comment y remedié ?

  2. #2
    S2S
    S2S est déconnecté
    Membre chevronné Avatar de S2S
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2006
    Messages : 336
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Form->Location = Point(Form->Location.X + e->X - positionClick->X, 
    		       Form->Location.Y + e->Y - positionClick->Y);
    Form1.h(195) : error C2143: erreur de syntaxe : absence de ';' avant '->'
    Form1.h(195) : error C2143: erreur de syntaxe : absence de ';' avant '->'

    1>XP-AL - 2 erreur(s), 0 avertissement(s)
    == Régénération globale*: 0 a réussi, 1 a échoué, 0 a été ignoré ==

  3. #3
    S2S
    S2S est déconnecté
    Membre chevronné Avatar de S2S
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2006
    Messages : 336
    Par défaut resolut
    bon, j'ai résoud comme ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Point ^positionClick;
    .../...
    private: System::Void buttonMove_MouseDown(System::Object^  sender, System::Windows::Forms::MouseEventArgs^  e) {
    	if (e->Button == System::Windows::Forms::MouseButtons::Left) {
    		 positionClick = e->Location;
    		}
    	}
    private: System::Void buttonMove_MouseMove(System::Object^  sender, System::Windows::Forms::MouseEventArgs^  e) {
    	if (e->Button == System::Windows::Forms::MouseButtons::Left) {
    		this->Location = Point(this->Location.X + e->X - positionClick->X,
    				       this->Location.Y + e->Y - positionClick->Y);
    		}
    	}
    c'etait donc "this->" et non form ou form1
    @++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/09/2007, 13h55
  2. Interaction entre Controle ActiveX et une autre FORM.
    Par parp1 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 23/03/2007, 14h10
  3. controle de navigation dans un form
    Par nowick dans le forum Access
    Réponses: 3
    Dernier message: 28/05/2006, 18h41
  4. controler la fermeture d'une forme
    Par blondelle dans le forum C++Builder
    Réponses: 17
    Dernier message: 18/05/2006, 00h05

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