볼랜드에서 프로그램을 짜다보니 막히는 부분이 생겨 도움을 청합니다.
다름이 아니라 GetDC로 ScrollBox에 핸들을 얻어오고 Canvas에 여러개의 선을 그리고 있습니다.
void __fastcall TframeLocalInfo::fnDrawLine(int _nIndex) { mhDC = ::GetDC( msbParent->Handle ); // 핸들로 DC핸들 얻죠. mpCanvas = new Graphics::TCanvas(); mpCanvas->Handle = mhDC; // Canvas의 핸들이 DC 핸들입니다. mpCanvas->Pen->Style = psSolid; mpCanvas->Pen->Width = 4; mpCanvas->Pen->Color = clBlue;
mpCanvas->MoveTo(mnXY[0][POS_X], mnXY[0][POS_Y]); for (int i = 1; i < LINECNT-4; i++) { if (i == _nIndex) mpCanvas->Pen->Color = clRed; else mpCanvas->Pen->Color = clBlue;
mpCanvas->LineTo(mnXY[i][POS_X], mnXY[i][POS_Y]); } delete mpCanvas; ReleaseDC( msbParent->Handle, mhDC ); }
그런데 ScrollBox을 이동시키면 선들도 같이 이동하여 그려지는 줄 알았는데 화면에 보여주는 ScrollBox 영역을 초기값으로 그려지고 있습니다.
그래서 생각해봤는데 GetDC는 화면에 보여주는 폼 핸들을 가져오는 것이고 ScrollBox의 영역을 얻어오는 함수가 있을것이라 생각됩니다. 맞는지도 모르겠구 아무튼 여러분의 도움을 청합니다.
|