Announcement

Collapse
No announcement yet.

Problem mit MouseDown Aktion: Wird nicht erkannt!?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Problem mit MouseDown Aktion: Wird nicht erkannt!?

    Hallo erstmal an alle. Da ich neu in diesem Forum bin, begrüße ich euch alle und hoffe, dass Ihr mir bei meinem kleinen Problem helfen könnt.

    Ich habe kürzlich angefangen in Visual C++ zu programmieren und benutze nebenbei das Buch "Visual C++ 2008" von Dirk Louis. Dort ist ein Beispiel mit einem kleinen Programm, dass Mausklickaktionen erkennen soll und nach jedem Klick auf das Hauptfenster (Form1 in meinem Fall) die Koordinaten einzeichnen soll.

    Nun zu meinem Problem: Ich habe es genau abgetippt, jedoch will er einfach keine Koordinaten einzeichnen. Muss man noch irgendeine Eigenschaft aktivieren oder deaktivieren, damit er die Mausklickaktionen erkennt?

    Ich hoffe, dass ihr mir helfen könnt. Hier noch der Code in Form1.h

    (Hinweis zum Code: Meine MouseDown Methode ist die letzte Methode.)

    Code:
    #pragma once
    
    
    namespace Bsp {
    
    	using namespace System;
    	using namespace System::ComponentModel;
    	using namespace System::Collections;
    	using namespace System::Windows::Forms;
    	using namespace System::Data;
    	using namespace System::Drawing;
    
    	/// <summary>
    	/// Zusammenfassung für Form1
    	///
    	/// Warnung: Wenn Sie den Namen dieser Klasse ändern, müssen Sie auch
    	///          die Ressourcendateiname-Eigenschaft für das Tool zur Kompilierung verwalteter Ressourcen ändern,
    	///          das allen RESX-Dateien zugewiesen ist, von denen diese Klasse abhängt.
    	///          Anderenfalls können die Designer nicht korrekt mit den lokalisierten Ressourcen
    	///          arbeiten, die diesem Formular zugewiesen sind.
    	/// </summary>
    	public ref class Form1 : public System::Windows::Forms::Form
    	{
    	public:
    		Form1(void)
    		{
    			InitializeComponent();
    			//
    			//TODO: Konstruktorcode hier hinzufügen.
    			//
    		}
    
    	protected:
    		/// <summary>
    		/// Verwendete Ressourcen bereinigen.
    		/// </summary>
    		~Form1()
    		{
    			if (components)
    			{
    				delete components;
    			}
    		}
    
    	private:
    		/// <summary>
    		/// Erforderliche Designervariable.
    		/// </summary>
    		System::ComponentModel::Container ^components;
    
    #pragma region Windows Form Designer generated code
    		/// <summary>
    		/// Erforderliche Methode für die Designerunterstützung.
    		/// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden.
    		/// </summary>
    		void InitializeComponent(void)
    		{
    			this->SuspendLayout();
    			// 
    			// Form1
    			// 
    			this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
    			this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
    			this->AutoSize = true;
    			this->ClientSize = System::Drawing::Size(495, 248);
    			this->KeyPreview = true;
    			this->Name = L"Form1";
    			this->Text = L"Form1";
    			this->Load += gcnew System::EventHandler(this, &Form1::Form1_Load);
    			this->ResumeLayout(false);
    
    		}
    #pragma endregion
    	private: System::Void Form1_Load(System::Object^  sender, System::EventArgs^  e) {
    			 }
    
    	//
    	// Methode zum Zeichnen der x-und y Koordinaten
    	//
    	void Form1_MouseDown(Object^ sender, MouseEventArgs^ e) 
    	{
    		Graphics ^gc = this->CreateGraphics();
    
    		String ^s = String::Format("({0},{1})",e->X, e->Y);
    		
    		gc->DrawString(s, this->Font, gcnew SolidBrush(Color::Black), Point(e->X, e->Y));
    	}
    
    	};
    }
    Dann bedanke ich mich schon einmal im vorraus und wünsche noch einen schönen Tag!

    MFG

  • #2
    Analog zu

    this->Load += gcnew System::EventHandler(this, &Form1::Form1_Load);

    fehlt der Handler für das MouseDown

    this->MouseDown += new System::Windows::Forms::MouseEventHandler(this, &Form1::Form1_MouseDown);
    Christian

    Comment


    • #3
      Super hat alles geklappt!

      this->MouseDown += new System::Windows::Forms::MouseEventHandler(this, &Form1::Form1_MouseDown);
      Nur bei dem "new" hast du dich vertippt, da heisst es ja "gcnew", aber ansonsten super schnell und auf den Punkt gebracht!

      Vielen Dank!

      Comment


      • #4
        Es kann gcnew heissen, muss aber nicht...dann musst du dich selber um den Speicher kümmern..
        Christian

        Comment

        Working...
        X