海外旅行から帰ってきたら、まず何を食べる?

vc++のマネージ形式で、buttonを使ってON/OFFの機能をつけて、pictureboxにマウスで落書きしたいんですが、どのプロパティを使えばいいかわかりません。
Penか、Graphicsのプロパティを使えばいいんですか?
何かいい例あったら教えてください。

A 回答 (1件)

 こんばんは。

回答が付かないようですので、参考程度の回答をさせていただきます。

 MSDNでも、落書きプログラムと思しきマウス処理の一部が載っていました。
 http://msdn.microsoft.com/ja-jp/library/system.w …

 以下はMSペイントブラシの様に、マウスのドラッグでグニャ~っと、線を引きます。左ボタンで緑、右ボタンで赤です。
 関数はピクチャーボックスプロパティの「イベント→マウス」の場所でそれぞれに対応させてください。

//メンバ変数
cli::array<PointF>^m_arrPt;
Graphics^m_gfx;
Pen^m_pen;
boolm_bCaptured;

//マウスが押された瞬間
private: System::Void OnMouseDown(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e)
{
Color color = Color::Green;
if(e->Button == System::Windows::Forms::MouseButtons::Right)
color = Color::Red;

m_bCaptured = true;
m_gfx = pictureBox1->CreateGraphics();
m_pen = gcnew Pen(color);
m_arrPt = gcnew cli::array<PointF>(2);
PointF pt = PointF(e->X, e->Y);
m_arrPt->SetValue(pt, 0);
m_arrPt->SetValue(pt, 1);

m_gfx->DrawPolygon(m_pen, m_arrPt);
}

//マウスが話された瞬間
private: System::Void OnMouseUp(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e)
{
m_bCaptured = false;
}

//マウスを動かしている最中
private: System::Void OnMouseMove(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e)
{
if(!m_bCaptured)return;

PointF pt = PointF(e->X, e->Y);
m_arrPt->SetValue(pt, 1);
m_gfx->DrawPolygon(m_pen, m_arrPt);
m_arrPt->SetValue(pt, 0);
}
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報