mit wxWidgets zeichnen...
-
Hallo, ich habe, nachdem ich das Tut part I hier aus dem Magazin gemacht habe, versuche ich nun das Programm aus part II ein wenig meinen Bedürfnisen anzupassen.
Dazu versuche ich mit nur einem Panel auszukommen, selbiges direkt auf die Oberfläche zu werfen und zu "bezeichnen".
Dazu der Code der Panel.cpp:
#include "FieldPanel.hpp" // << constructor >> FieldPanel::FieldPanel(wxWindow* parent): wxPanel(parent,wxNewId(),wxDefaultPosition,wxDefaultSize,wxFULL_REPAINT_ON_RESIZE){ Connect(wxEVT_PAINT,wxPaintEventHandler(FieldPanel::OnPaint)); Connect(wxEVT_LEFT_DOWN,wxMouseEventHandler(FieldPanel::OnLeftClick)); } // << destructor >> FieldPanel::~FieldPanel(){ } void FieldPanel::OnPaint(wxPaintEvent& event){ wxPaintDC dc(this); dc.DrawRectangle(2, 2, GetSize().GetWidth()-2, GetSize().GetHeight()-2); int abstand = 10; pen.SetStyle(wxSOLID); pen.SetWidth(4); dc.SetPen(pen); dc.DrawLine(abstand,abstand,GetSize().GetWidth()-abstand,GetSize().GetHeight()-abstand); dc.DrawLine(GetSize().GetWidth()-abstand,abstand,abstand,GetSize().GetHeight()-abstand); } void FieldPanel::OnLeftClick(wxMouseEvent& event){ }
die zugehörige .hpp:
#ifndef FieldPanel_hpp #define FieldPanel_hpp #include <wx/panel.h> #include <vector> #include <wx/stattext.h> class FieldPanel : public wxPanel{ protected: public: FieldPanel(wxWindow* parent); virtual ~FieldPanel(); void OnPaint(wxPaintEvent& event); void OnLeftClick(wxMouseEvent& event); }; #endif
In der main.cpp wird das ganze im Konstruktor dann so aufgerufen:
FieldPanel* fieldpanel = new FieldPanel(this);
Wenn ich das ganze kompiliere bekomme ich folgende Fehlermeldung:
jan@jan-laptop:/media/My Passport/C++/wxw/tuts/drawing$ g++ app.cpp main.cpp FieldPanel.cpp `wx-config --libs` `wx-config --cxxflags` -o prog
FieldPanel.cpp: In member function »void FieldPanel::OnPaint(wxPaintEvent&)«:
FieldPanel.cpp:20: Fehler: »wxPaintDC« wurde in diesem Gültigkeitsbereich nicht definiert
FieldPanel.cpp:20: Fehler: expected `;' before »dc«
FieldPanel.cpp:21: Fehler: »dc« wurde in diesem Gültigkeitsbereich nicht definiert
FieldPanel.cpp:23: Fehler: »pen« wurde in diesem Gültigkeitsbereich nicht definiert
jan@jan-laptop:/media/My Passport/C++/wxw/tuts/drawing$Achja wie man sieht arbeite ich in Linux und mit g++
Kann mir jemand erklären was das Problem ist?
-
#include <wx/dcclient.h>
für wxPaintDCund
wxPen pen;
-
Include für wxPaintDC vergessen?
rya
-
Dankeschön!!
Klappt endlich... so im nachhinein schäm ich mich das nicht gesehen zu haben *dough*