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):
...aux évenement mouseDown et mouseMove d'un bouton 'buttonMove',
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); } }
MAIS au lieu de déplacé le controle, je veux déplacé le Form
j'ai donc le code suivant:
la derniere formule (ligne 187 - 'Form1->Loc...') pose un probleme:
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); } }
pas d'erreur si je remplace Form1 par buttonMouse (mais evidement ca deplace le bouton et non le forms)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é ========
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);la meme erreur si je remplace Form1 par Form (ou par System::Windows::Forms::Form)XP-AL - 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é ?
Partager