Archiv verlassen und diese Seite im Standarddesign anzeigen : C++ .NET BUTTON MouseListener
Hi,
folgendes Problem...
this->button1->Click += new System::EventHandler(this, button1_Click);
Die Zeile funktioniert noch. Jetzt wollte ich, wenn man die Maus über den Button bewegt auch eine funktion aufrufen.
Diese Zeile hab ich im Internet in der MSDN-Library gefunden:
this->button1->MouseMove += gcnew System::Windows::Forms::MouseEventHandler( this, &Form1::button1_Click );
gcnew = "nichtdeklarierter Bezeichner"
Ich hab irgendwie das gefühl ich mach da was Grundlegendes falsch, weil die Events für Click und MouseMove so komplett verschieden aussehen :(
könnt ihr mir damit helfen..., bitte,
lg sevi
Du verwechselst "C++/CLI" Code mit "Managed C++" Code.
Ersetze gcnew durch new und mach hinten die Referenz weg.
Falls du noch nicht viel damit gemacht hast, würde ich dir dringend empfehlen auf CLI umzusteigen. Managed C++ ist nur der in vielen Punkten missglückte Vorgänger.
SamStone
2006-12-09, 21:21:14
Warum machst du bei der Pointer zuweisung immer ein "+=" und nicht einfach "="?
Habe sowas in der Art schon öfters gesehen, aber weiß nicht was das bringen soll :confused:
tokugawa
2006-12-09, 21:43:09
Du verwechselst "C++/CLI" Code mit "Managed C++" Code.
Ersetze gcnew durch new und mach hinten die Referenz weg.
Falls du noch nicht viel damit gemacht hast, würde ich dir dringend empfehlen auf CLI umzusteigen. Managed C++ ist nur der in vielen Punkten missglückte Vorgänger.
Da stimm ich dir zu, obwohl bei Managed C++ das Kombinieren von nativen static libraries meiner Erfahrung nach problemloser funktioniert als mit C++/CLI (das ja bei CLI Apps z.B. die "DLL"-Runtimes forciert). "It just works" gilt also für C++/CLI nur mehr bedingt...
Warum machst du bei der Pointer zuweisung immer ein "+=" und nicht einfach "="?
Habe sowas in der Art schon öfters gesehen, aber weiß nicht was das bringen soll :confused:
+= ist bei .NET korrekt, da man soweit ich weiß hier in die Liste der Eventhandler einen neuen Handler "hinzufügt". Es ist ja nicht wirklich eine "Pointer-Zuweisung".
hm..danke soweit,
aber es funktioniert noch immer nicht :(
this->button1->MouseMove += new System::Windows::Forms::MouseEventHandler( this, button1_MouseOver );
Fehler:
gui_net error C3352: 'void gui_net::Form1::button1_MouseOver(System::Object __gc *,System::EventArgs __gc *)': Die angegebene Funktion stimmt nicht mit dem Delegattyp 'void (System::Object __gc *,System::Windows::Forms::MouseEventArgs __gc *)' überein
muss da die Funktion button1_MouseOver einen bestimmten Typ habe?
lg Sevi
ahh...alles klar
tut mir leid, dass ich so voreeilig gefragt hab
Lösung:
Ich hab den Funktionskopf der Funktion button1_MouseOver
private: System::Void button1_MouseOver(System::Object *sender, System::EventArgs *e)
geändert auf
private: System::Void button1_MouseOver(System::Object *sender, System::Windows::Forms::MouseEventArgs *e)
jetz funktionierts :)
danke,
lg Sevi
ahhhahah...ich bin so aufgeschmissen mit der Umgebung :(
ich hab jetzt mit Visual C++ eine neue, zusätzliche FORM erzeugt...
wie kann ich die jetzt anzeigen bzw. überhaupt ansprechen?
lg sevi
ach..war wieder zu voreilig...
habs schon
tut leid..aber ich war so verzweifelt,
lg sevi
vBulletin®, Copyright ©2000-2024, Jelsoft Enterprises Ltd.