|
안녕하세요. 초보입니다.
항상 도움을 주어서 감사드립니다.
질문드리고자 하는 것은 paintbox를 하나 그려놓고 onpaint event에 어떤 line 을 그린후에(이때는 프로그램이 run되면 바로 main화면에 그래프가 나타나죠) mousedown, mousemove event를 이용하면 그 line을 움직일 수 있는 코드를 짰습니다.
그런데 이번에는 Button을 하나 만들어 그 버튼을 누르면 그리고자 하는 그래프의 좌표(즉 점1(x1, y1), 점2(x2, y2), 점3( , ) ....)를 계산한 다음 TPoint에 저장한 후 위의 OnPaint Event내에 구현한 동일한 코드즉, Paintbox1->Canvas->MoveTo(점1), Paintbox1->Canvas->LineTo(점2), ...을 써놓았더니 Mouse down, Mousemove event가 먹지 않군요. 아마 OnPaint Event가 먹지 않아서 그런 모양인데 어떻게 하면 되는지요.
**** 버튼에 구현한 코드는 다음과 같습니다********]
void __fastcall TForm1::Button3Click(TObject *Sender)
{
int PStep, MinP, MaxP;
PStep=atoi(Edit1->Text.c_str()) ;
MinP = atoi(Edit2->Text.c_str()) ;
MaxP = atoi(Edit3->Text.c_str()) ;
DelP=200./PStep;
DelStep=450./PStep;
//SumP=DelP;
for(int i=0;i<PStep; i++)
{
Pt[i].x=i*DelStep, Pt[i].y=i*DelP;
// SumP=SumP+DelP;
// ShowMessage(Pt[i].x);
}
PaintBox1->Canvas->Pen->Color=clTeal;
PaintBox1->Canvas->Rectangle(0,0,400,0+200);
PaintBox1->Canvas->Pen->Color=clBlack;
//Canvas->Polyline((TPoint*)Pt,6);
//below code draws star
PaintBox1->Canvas->MoveTo( Pt[0].x,Pt[0].y);
for (int i=1;i<PStep; i++)
{
PaintBox1->Canvas->LineTo(Pt[i].x, Pt[i].y );
}
}
|