hWnd des Forms bekommen
-
Hi @ ALl.
ich möchte das Schließen mit einer MessageBox abfangen.
Dafür benötige ich das hWnd des Forms.
wie bekomme ich das??Mein bisheriger Versuch:
private: System::Void Form1_FormClosing(System::Object^ sender, System::Windows::Forms::FormClosingEventArgs^ e) { if (MessageBox(NULL, "Would you like to close this program", "Warning", MB_YESNO | MB_ICONWARNING) == IDNO) { e->Cancel = true; } }
Ach: und übrigens hat er ein Prob beim Konvertieren des Parameter 2 in LPCSTR.
Warum? das war doch auch nicht im C++ so.Danke.
-
Hallo,
das ist WinApi aber du willst ja bestimmt mit .Net arbeiten. Such dir am besten Tutorials. Eine MessageBox Aufruf:
private: System::Void Form1_FormClosing(System::Object^ sender, System::Windows::Forms::FormClosingEventArgs^ e) { if (MessageBox::Show("Dies und Das","Title",MessageBoxButtons.YesNo) == DialogResult.No) { e->Cancel = true; } }
-
Helfender Helfer schrieb:
private: System::Void Form1_FormClosing(System::Object^ sender, System::Windows::Forms::FormClosingEventArgs^ e) { if (MessageBox::Show("Dies und Das","Title",MessageBoxButtons.YesNo) == DialogResult.No) { e->Cancel = true; } }
Sorry mein Fehler. Bin C# Programmierer.
private: System::Void Form1_FormClosing(System::Object^ sender, System::Windows::Forms::FormClosingEventArgs^ e)
{
if (MessageBox::Show("Dies und Das","Title",MessageBoxButtons::YesNo) == DialogResult::No)
{
e->Cancel = true;
}
-
Wie ist denn C# im Vergleich zu C++?
Auch wenn es jetzt am Thema vorbeigeht.
Aber womit kommt man weiter?
C++ ist doch schon älter und C# ist ganz neu. ist das besser?
-
Script-Styler schrieb:
Wie ist denn C# im Vergleich zu C++?
Auch wenn es jetzt am Thema vorbeigeht.
Aber womit kommt man weiter?
C++ ist doch schon älter und C# ist ganz neu. ist das besser?Bei C# benutzt ihr folgende Syntax:
textBox1.Text = "OK";
Bei C++ halt mit dem Pfeil
textBox1->Text = "OK";
Das lustige ist es ist im dunkeln sehr kompliziert diese beiden Tasten zu finden -> (aufm Laptop) von daher muss man sich gut überlegen zu C# zu wechseln, denn da muss man einfach nur einen Punkt machen und gleiches Ergebniss
-
Es hat nicht nur mit den . und -> zu tun das ich C# programmier sondern das Visual Studio von C# ist Benutzerfreundlicher und er schreibt alles getrennt also die Methoden in die Form.cs und des vom designer in Form.Designer.cs. Aber sonst gibt es keinen großen unterschied. Ich beherrsche beides, was auch keine meisterleistung ist...
-
Helfender Helfer schrieb:
Aber sonst gibt es keinen großen unterschied. Ich beherrsche beides, was auch keine meisterleistung ist...
Es gibt sogar gravierende Unterschiede zwischen C++/CLI und C#, auch wenn diese nicht unbedingt sofort alle ins Auge springen (ein kleiner Ausschnitt, gibt aber noch mehr):
1. In C++/CLI kannst du unmanaged Code (normales C++) verwenden (u.a. STL, Templatemetaprogrammierung...)
2. C++/CLI unterstüzt einige Konstrukte nicht direkt die C# kennt, und die bestimmte Abläufe (wie z.B. die GUI-Erstellung) vereinfachen wie z.B. "particial class", was z.B. die .Net 3.0 Entwicklung erschwert.
Ich würde für Schnittstellen zu Altcode der in C/C++ geschrieben wurde C++/CLI verwenden, und ansonsten wegen der besseren Unterstützung zu C# greifen. Zumindest solange es um das .NET-Framework geht.
cu André