verständnisfragen
-
und wie hängt das ganze mit WinUnit zusammen?
-
Gar nicht. Musste erstmal nachschaun was das sein soll. Meinst du das hier? Falls ja schließt sich das sogar in gewisser Weise aus, da WinUnit für native C++ verwendet wird und nicht für .Net welches ja bei Windows Forms verwendet wird.
-
doch genau mit diesem WinUnit arbeiten wir unter CLI/C++!
aber ok wollte ja auch nur wissen ob IComparable damit direkt zusammenhängt!
-
Wie funktioniert das? Ich meine ein Testframework das für native C++ ausgelegt ist, erwartet ja auch native Datentypen bei Funktionsaufrufen etc. Die kann C++/CLI doch aber gar net liefern. Das selbe Problem existiert natürlich auch anders herum. Das beim VS enthaltene TestFramework z.B. ist auf .Net zugeschnitten und C++/CLI Anwendungen lassen sich prima testen, native C++ Anwendungen dagegen fast gar net.
-
ok es ist dieser code den ich nicht verstehe:
// Liste_IteratorTest.cpp #include "WinUnit.h" using namespace System; #include "VerketteteListe.h" #include "Liste.h" Liste^ new_Liste(); BEGIN_TEST(Liste_Iterator_Konstruktion) { Liste^ liste=new_Liste(); Liste::Iterator^ i=liste->erzeuge_Iterator(); WIN_ASSERT_TRUE(i!=nullptr,_T("Iterator-Objekt sollte erzeugt worden sein")); } END_TEST BEGIN_TEST(Liste_Iterator_element) { Liste^ liste=new_Liste(); Liste::Iterator^ i=liste->erzeuge_Iterator(); i->ende(); try { WIN_ASSERT_THROWS(i->element(), Liste::anfang_Ausnahme^, _T("Iterator steht auf Anfang und darf Element nicht zurueckgeben.")); } catch(Exception^ e) { WIN_ASSERT_FAIL(_T("Ausnahme darf nicht kommen.")); } } END_TEST
Dann würde ich gerne noch wisse, wann die Methode OnPaint(PaintEventArgs^ e) eines Panels aufgerufen wird! ich sehe die deklaration, die definition, aber nicht den expliziten aufruf, dennoch wird die methode irgendwo, irgendwie aufgerufen!
Was sind PaintEventArgs^ ? kann ich damit nur pointer vom typ Graphics^ übergeben?
-
nochmal zu dem onpaint:
laut msdn:Hinweise zur Vererbung:
Wenn Sie OnPaint in einer abgeleiteten Klasse überschreiben, müssen Sie die OnPaint-Methode der Basisklasse aufrufen, sodass registrierte Delegaten das Ereignis empfangen.
eben dieser aufruf fehlt oder wird die onpaint methode automatisch aufgerufen wenn ich einen panel erstelle?
-
Dann würde ich gerne noch wisse, wann die Methode OnPaint(PaintEventArgs^ e) eines Panels aufgerufen wird! ich sehe die deklaration, die definition, aber nicht den expliziten aufruf, dennoch wird die methode irgendwo, irgendwie aufgerufen!
Was sind PaintEventArgs^ ? kann ich damit nur pointer vom typ Graphics^ übergeben?edit:
laut msdn:Wenn Sie OnPaint in einer abgeleiteten Klasse überschreiben, müssen Sie die OnPaint-Methode der Basisklasse aufrufen, sodass registrierte Delegaten das Ereignis empfangen.
eben dieser aufruf fehlt oder wird die onpaint methode automatisch aufgerufen wenn ich einen panel erstelle?
-
OnPaint(..) wird von der Base-Class aufgerufen.
PaintEventArgs enthält das Graphics-Objekt... das ist zum zeichnen mit GDI+ gedacht
-
also automatisch aufgerufen?
edit:
ich drücke es mal anders aus:habe in einer klasse folgende funktion:
void Welt::OnPaint(PaintEventArgs^ e) { Graphics^ g = e->Graphics; brumm->zeichne(g); }
sie ist so deklariert in der klasse:
public ref class Welt:Panel { /** Konstruiert eine Welt */ public: Welt(); protected: virtual void OnPaint(PaintEventArgs^ e) override; // Behandlung des Paint-Ereignisses private: Void behandle_timer_ereignis(Object^ sender,EventArgs^ e); // Behandlung des Zeitgeber-Ereignisses }
Ich möchte jetzt wissen, wann und wie die onPaint Methode aufgerufen wird, denn ich sehe keinen expliziten aufruf!dennoch wird der code ausgeführt!
-
Hallo,
Ich möchte jetzt wissen, wann und wie die onPaint Methode aufgerufen wird, denn ich sehe keinen expliziten aufruf!dennoch wird der code ausgeführt!
Einfach ausgedrückt, immer wenn das (Betriebs-)System meint, dass ein Fenster (oder Teile davon) sich neu zeichnen soll(en) (z.B. wenn es von anderen verdeckt war), wird ein Paint-Ereignis ausgelöst, in dem OnPaint aufgerufen wird.
MfG,
Probe-Nutzer