Hallo, ich habe folgendes Problem:
Ich will das Zeichnen eines Spielfeldes an eine Klasse übergeben. Mein Code sieht wie folgt aus:
private: System::Void wrapper_Paint(System::Object^ sender, System::Windows::Forms::PaintEventArgs^ e) {
Graphics ^g = e->Graphics;
if(game==true)
{
sf->Init(g);
}
}
In meiner Klasse passiert folgendes
spielfeld.h
ref class Spielfeld{
private:
System::Drawing::Graphics ^brett;
System::Drawing::Pen ^rahmen;
System::Drawing::Pen ^linie;
void ZeichneRahmen();
public:
Spielfeld();
void Spielfeld::Init(System::Drawing::Graphics ^brett);
};
Spielfeld.cpp
Spielfeld::Spielfeld()
{
this->rahmen=gcnew System::Drawing::Pen(System::Drawing::Color::Black, 2);
this->linie=gcnew System::Drawing::Pen(System::Drawing::Color::Black, 1);
}
void Spielfeld::Init(System::Drawing::Graphics ^brett)
{
this->brett=brett;
this->ZeichneRahmen();
}
void Spielfeld::ZeichneRahmen()
{
brett->DrawLine(this->rahmen,0,0,0,600);
brett->DrawLine(this->rahmen,0,0,800,0);
brett->DrawLine(this->rahmen,800,0,800,600);
brett->DrawLine(this->rahmen,0,600,800,600);
}
Wenn ich das ganze ausführe wird in meinem Pannel ein rotes X dargestellt. Wenn ich das ganze ohne Klasse löse funktioniert es natürlich einwandfrei. Ich habe die Vermutung, dass etwas mit der Referenzierung da nicht klappt, ich habe auch schon versucht das Event als Pointer zu übergeben, aber irgendwie fehlt mir da ein bisschen der Überblick und ich weiß auch nicht wo genau ich anfangen soll zu suchen. Bitte um kleine Denkanstöße... Ich bin leider in Visual C++ sehr neu und hab auch allgemein relativ wenig Erfahrung.
Liebe Grüße
euer Noob