Visual C++ .NET/2D/Coordinates
Версия от 15:31, 26 мая 2010; (обсуждение)
Correcting Coordinates
[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);
}
}
};
Disappearing Coordinates
[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.
}
};