|
ben 님이 쓰신 글 :
: 도대체 님이 쓰신 글 :
: : onMouseDown
: : onMouseMove
: : onMouseUp
: : 을 이용해서
: : void __fastcall TForm_TTimeBar::Panel1MouseUp(TObject *Sender, TMouseButton Button,
: : TShiftState Shift, int X, int Y)
: :
: : +=X 를 이용해서 드래그 엔 드랍을 구현하였습니다.
: :
: : 그런데 드래그할 패널이 Parent 패널보다 밖에 드래그 했을때가 문제더군요..
: :
: : 패널이 없어져서 드래그가 불가능하네요 ..
: :
: : 이동시킬 패널을 Parent 패널안에만 있게 하려면 어떤식으로 구현해야 할까요?.
:
:
:
: Parent 패널보다 밖에 가면 X, Y 값에 어느하나는 음수 값이 떨어지겠지요.
:
: 밖으로 나갔을때에도 처리하고 싶다면 음수값 떨어졌을때 처리를 해주시든지 아니면..
:
: Parent 의 Parent 도 동일한 핸들러를 이용하면 될듯합니다.
if 문을 사용해서 Left 값과 드래그 영역의 위치를 비교해서 드래그 가능하게 할지 못하게 할지 정해주었는데
드래그 속도를 천천히 하면 영역밖으로 나가는순간 멈추지만
드래그 속도를 빨리 하면 영역밖으로 나가버리네요.
나갔을땐 강제로 left 값을 정해주어서 원래 위치로 돌아오게만 해놓았습니다.
trackbar 처럼 드래그를 아무리 빨리해도 0의 위치에서 멈추었으면 좋겠는데요 ㅜㅜ
|