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++ Discussion :

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


Sujet :

C++

  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)
    ===============
    MAUVAISE SECTION
    REPONDRE ICI
    ===============
    lu
    Pour un winforms SANS barre de titre, (sous VS 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 Forms
    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-AO - 0 erreur(s), 0 avertissement(s)
    ======== Régénération globale*: 1 a réussi, 0 a échoué, 0 a été ignoré ========
    cela vien t'il du fait que j'essai de controler le forms (public) depui un controle (privé)...comment y remedié ?

  2. #2
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 296
    Par défaut
    (ce n'est pas la FAQ de ce forum (à déléster)
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/09/2007, 15h15
  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