Visual C++ .NET/2D/Coordinates
Correcting Coordinates
<source lang="csharp"> [STAThreadAttribute] int main(array<System::String ^> ^args) {
Application::Run(gcnew Form1()); return 0;
}
using namespace System; using namespace System::ComponentModel; using namespace System::Collections; using namespace System::Windows::Forms; using namespace System::Data; using namespace System::Drawing; public ref class Form1 : public System::Windows::Forms::Form { public: Form1(void) { InitializeComponent(); coords = gcnew ArrayList(); // Instantiate coords array } ArrayList ^coords; void InitializeComponent(void) { this->SuspendLayout(); this->AutoScaleDimensions = System::Drawing::SizeF(6, 13); this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font; this->ClientSize = System::Drawing::Size(292, 273); this->Name = L"Form1"; this->Text = L"Click and see coords"; this->Paint += gcnew System::Windows::Forms::PaintEventHandler(this, &Form1::Form1_Paint); this->MouseDown += gcnew System::Windows::Forms::MouseEventHandler(this, &Form1::Form1_MouseDown); this->ResumeLayout(false); } System::Void Form1_MouseDown(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e) { coords->Add(Point(e->X, e->Y)); Invalidate(); } System::Void Form1_Paint(System::Object^ sender, System::Windows::Forms::PaintEventArgs^ e) { for each (Point^ p in coords) { e->Graphics->DrawString(String::Format("({0},{1})",p->X,p->Y), gcnew Drawing::Font("Courier New", 8), Brushes::Black, (Single)p->X, (Single)p->Y); } } }; </source>
Disappearing Coordinates
<source lang="csharp"> [STAThreadAttribute] int main(array<System::String ^> ^args) {
Application::Run(gcnew Form1()); return 0;
}
using namespace System; using namespace System::ComponentModel; using namespace System::Collections; using namespace System::Windows::Forms; using namespace System::Data; using namespace System::Drawing; public ref class Form1 : public System::Windows::Forms::Form { public: Form1(void) { this->SuspendLayout(); this->AutoScaleDimensions = System::Drawing::SizeF(6, 13); this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font; this->ClientSize = System::Drawing::Size(292, 273); this->Name = L"Form1"; this->Text = L"Click and see coords"; this->MouseDown += gcnew System::Windows::Forms::MouseEventHandler(this, &Form1::Form1_MouseDown); this->ResumeLayout(false); } private: System::Void Form1_MouseDown(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e) { Graphics ^g = this->CreateGraphics(); g->DrawString(String::Format("({0},{1})", e->X, e->Y), gcnew Drawing::Font("Courier New", 8), Brushes::Black, (Single)e->X, (Single)e->Y); delete g; // we delete the Graphics object because we // created it with the CreateGraphics() method. } }; </source>