|
MouseMove이벤트를 이용한 두가지 방법을 소개해드리겠습니다.
[방법1] - 쉬운방법
1) Mouse Move 할때 X,Y좌표로 해당 Cell을 찾습니다.
2) 그런다음 Cell을 Select합니다.
-샘플----
void __fastcall TForm1::SGridMouseMove(TObject *Sender,
TShiftState Shift, int X, int Y)
{
int iRow,iCol;
SGrid->MouseToCell(X,Y,iCol,iRow); //Mouse가 움직이는 Cell의 row , col 을 찾음
if(iRow>0 && iCol>0)
{
SGrid->Row=iRow; // row , col이 0보다 작지 않으면 설정(select )
SGrid->Col=iCol;
}
}
//---------------------------------------------------------------------------
[방법 2]
1) MouseMove이벤트때 Move하고 있는 좌표에 MouseDown 메세지를 발생시켜주면 됩니다.
void __fastcall TForm1::SGridMouseMove(TObject *Sender,
TShiftState Shift, int X, int Y)
{
TPoint tp;
SGrid->ClientToScreen(tp); //현재 Grid가 Screen좌표로 변환해줍니다.
mouse_event(MOUSEEVENTF_LEFTDOWN, tp.x+X, tp.y+Y, 0, 0);
//그 다음 마우스 위치에 mousedown이벤트를 발생시킵니다.
//SendMessage로 WM_LBUTTONDOWN 메세지를 좌표를 정확히 지정해서 보내도 됩니다.
}
//---------------------------------------------------------------------------
삼돌 님이 쓰신 글 :
: StringGrad에서 마우스 왼쪽 버튼을 클릭하면
:
: 셀이 선택이되는데..
:
: 클릭하지 않고 마우스가 움직임에 따라
:
: 셀이 선택되게 하는 방법은 없을까요?
:
: StringGridMouseMove 이벤트를 사용해보려고 했지만..
:
: 초보인지라 뭐가 뭔지 도무지 모르겠습니다.
:
: 도와주세요 ㅠ,.ㅜ
|