Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C++CLI / VB .Net / .Net-Framework » Spielfeld+Maus = Fehler

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 < [ 3 ]
010
07.03.2007, 12:29 Uhr
Uwe
C/C++ Master
(Administrator)


Schreib doch gleich das Du ein C++.Net Projekt hast.

C++:
private: System::Void button1_MouseDown(System::Object *  sender, System::Windows::Forms::MouseEventArgs *  e)
{
    String *eventString = NULL;
    switch (e->Button)
    {
        case MouseButtons::Left:
               eventString = "L";
        break;
        case MouseButtons::Right:
            eventString = "R";
        break;
            case MouseButtons::Middle:
            eventString = "M";
        break;
           case MouseButtons::None:
            eventString = "N";
                break;
        default:
        break;
    }
    MessageBox::Show(eventString);
}


--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
07.03.2007, 13:31 Uhr
~nooooob
Gast


------ Erstellen gestartet: Projekt: 1. Projekt, Konfiguration: Debug Win32 ------
Kompilieren...
1. Projekt.cpp
cdokumente und einstellungen\broder\eigene dateien\visual studio 2005\projects\1. projekt\Form1.h(551) : error C3845: "My1Projekt::Form1::eventString": Nur statische Datenmember können innerhalb einer Verweisklasse oder eines Werttyps initialisiert werden.
cdokumente und einstellungen\broder\eigene dateien\visual studio 2005\projects\1. projekt\Form1.h(600) : error C2039: 'Button': Ist kein Element von 'System::EventArgs'
cwindows\microsoft.net\framework\v2.0.50727\mscorlib.dll: Siehe Deklaration von 'System::EventArgs'
cdokumente und einstellungen\broder\eigene dateien\visual studio 2005\projects\1. projekt\Form1.h(602) : error C2039: 'Right': Ist kein Element von 'System::Windows::Forms::Control::MouseButtons'
cdokumente und einstellungen\broder\eigene dateien\visual studio 2005\projects\1. projekt\Form1.h(40): Siehe Deklaration von 'System::Windows::Forms::Control::MouseButtons'
cdokumente und einstellungen\broder\eigene dateien\visual studio 2005\projects\1. projekt\Form1.h(602) : error C2051: case-Ausdruck ist keine Konstante
cdokumente und einstellungen\broder\eigene dateien\visual studio 2005\projects\1. projekt\Form1.h(607) : warning C4065: switch-Anweisung enthält 'default', aber keine case-Marken
Das Buildprotokoll wurde unter "file://cDokumente und Einstellungen\Broder\Eigene Dateien\Visual Studio 2005\Projects\1. Projekt\Debug\BuildLog.htm" gespeichert.
1. Projekt - 4 Fehler, 1 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
07.03.2007, 13:45 Uhr
Uwe
C/C++ Master
(Administrator)


Der Quellcode ist ja auch im Ereignis MouseDown de Button und nicht im Click Ereignis.
Zeig mal Deinen Quellcode, damit man sich ein Bild machen kann (mit Ereignishandler).
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
08.03.2007, 09:55 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo,
ich wollte eigentlich nur das Wesentliche sehen . Nun gut. VC++2005, da sieht die Sache etwas anders aus.
Markiere einen Button (z.B. Stein00) und gehe auf "Eigenschaften/Ereignisse". Jetzt suchst Du die Methode "MouseDown" und machst einen Doppelklick darauf. Der Ereinishandler

C++:
private:
    System::Void Stein00_MouseDown(System::Object^  sender, System::Windows::Forms::MouseEventArgs^  e) {
        
}


wird angelegt. Jetzt schreibst Du eine wiederverwendbare Funktion

C++:
private:
      void MouseDown( /*Object^sender,*/ System::Windows::Forms::MouseEventArgs^ e )
      {
                    String^ eventString = nullptr;
            switch (e->Button)
            {
            case My1Projekt::MouseButtons::Left :
                    eventString = "L";
                break;
                case ::My1Projekt::MouseButtons::Right:
                    eventString = "R";
                break;
                case ::My1Projekt::MouseButtons::Middle:
                    eventString = "M";
                break;
                case ::My1Projekt::MouseButtons::None:
                    eventString = "N";
                break;
                default:
                break;
            }
            MessageBox::Show(eventString);
      }


Jetzt schreibst Du in den Ereignishandler "MouseDown(e);"
Das ganze sollte dann so aussehen:

C++:
private:
    System::Void Stein00_MouseDown(System::Object^  sender, System::Windows::Forms::MouseEventArgs^  e) {
           MouseDown(e);        
}
private:
      void MouseDown( /*Object^sender,*/ System::Windows::Forms::MouseEventArgs^ e )
      {
                    String^ eventString = nullptr;
            switch (e->Button)
            {
            case My1Projekt::MouseButtons::Left :
                    eventString = "L";
                break;
                case ::My1Projekt::MouseButtons::Right:
                    eventString = "R";
                break;
                case ::My1Projekt::MouseButtons::Middle:
                    eventString = "M";
                break;
                case ::My1Projekt::MouseButtons::None:
                    eventString = "N";
                break;
                default:
                break;
            }
            MessageBox::Show(eventString);
      }


--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe

Dieser Post wurde am 08.03.2007 um 09:55 Uhr von Uwe editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
08.03.2007, 18:15 Uhr
~noooooob
Gast


Hallo
Also ich glaub du hast mich falsch verstanden.Also ich brauchh ein code der:
Wenn ich auf eine von den Button Stein00 bis Stein66 klicke sollte sich der Text verändern also zu:
this->Label->Text = L",um ein Mühlestein zu setzen,auf eins der Felder für die Spielsteine klicken!";
this->Label2->Location = System:rawing::Point(20, 9);
this->Label2->Size = System:rawing::Size(55, 17);
this->Label2->Text = spieler1;
und wenn dann wieder einen button geklickt wirt wieder zu :
this->Label->Text = L",um ein Mühlestein zu setzen,auf eins der Felder für die Spielsteine klicken!";
this->Label2->Location = System:rawing::Point(20, 9);
this->Label2->Size = System:rawing::Size(55, 17);
this->Label2->Text = spieler2;

ok?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
015
08.03.2007, 19:15 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo,
Ich denke nicht das ich dich falsch verstanden habe. Ich hab mich auf das bezogen

Zitat von ~nooooooooob:

Hab noch ein Problem.Wie kann ich schauen ob die rechte maustaste auf einer der button gedrückt wurde?...


Das was Du in Deinem letzten Post schreibst kannst Du in eine Funktion packen und dann aufrufen, wenn Du sie brauchst.
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe

Dieser Post wurde am 08.03.2007 um 19:16 Uhr von Uwe editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
016
08.03.2007, 19:19 Uhr
Uwe
C/C++ Master
(Administrator)


P.S. Hab mal die Quellcode Post's gelöscht. War zu unübersichtlich.
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
017
08.03.2007, 20:01 Uhr
~nooooob
Gast


hallo
aber wenn ich das in mein code reingebe giebt es fehler.kannst du mir nichte den code von dir in meinem code einbauen und mir schicken damit es tut?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
018
09.03.2007, 08:05 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo,
sende mir mal Dein Projekt (gezippt). Mail. im Profil.
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
019
12.03.2007, 18:57 Uhr
~nooooooooob
Gast


Hallo
Danke vielmal Uwe das du dich darum gekümmert hast.Hab ein neues problem. Ich will das das Programm wartet in einer gewissen Zeile des Codes bis ein Button gedrückt wird und dann erst weitter geht.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 < [ 3 ]     [ C++CLI / VB .Net / .Net-Framework ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: