Q&A

  • 마우스 위치 찾기.
리스트 박스 내에서 마우스 위치를 움직일때 마다 알고 싶은데..어떻게 해야 하나여?

onmousemove이벤트에서 하면 마우스가 리스트박스에 접근했다가 박스내에서 움직이면

좌표 값이 변하질 않아염..

다시 리스트 박스 밖으로 나왔다가 들어가면 새로운 좌표 값을 찾거든여..

어떻게 해야 밖으로 안나오고 리스트 박스 내에서 움직였을때 좌표값을 알 수 있나여?

아시는분 저좀 알려주심 캄사..캄사..ㅎㅎ

좋은 하루 되세염..



2  COMMENTS
  • Profile
    정용진 2001.04.27 18:14
    질문이 이해가 잘 되지 않는군요. 제 나름대로 이해해서 허접답변해 봅니다.



    답변1. 혹시! form의 mousemove event에 코딩을 하시지는 않았는지 확인해보세요.

    listbox의 mousemove event에 코딩을 하셔야 합니다.



    답변2. listbox의 mousemove event에 코딩을 하셔서 마우스 위치를 움직일때 마다

    선택되어진 listbox의 item값을 취득하실려고 하는것인지..



    -> listbox의 itemAtPos메서드를 이용하세요..도움말에 예제도 있슴다.



    답변3. 둘다 모두 안될 경우에는 글로벌 객체중에 mouse라는게 있습니다. 이것을

    이용해서 listbox.screentoclient메서드를 이용해서 좌표값을 변환하세요.

    mouse객체는 화면 전체의 위치값을 가지고 있거든요.



    허접답변이었슴다. 질문이 넘 이해안되네요.



    이슬이(참이슬) wrote:

    > 리스트 박스 내에서 마우스 위치를 움직일때 마다 알고 싶은데..어떻게 해야 하나여?

    > onmousemove이벤트에서 하면 마우스가 리스트박스에 접근했다가 박스내에서 움직이면

    > 좌표 값이 변하질 않아염..

    > 다시 리스트 박스 밖으로 나왔다가 들어가면 새로운 좌표 값을 찾거든여..

    > 어떻게 해야 밖으로 안나오고 리스트 박스 내에서 움직였을때 좌표값을 알 수 있나여?

    > 아시는분 저좀 알려주심 캄사..캄사..ㅎㅎ

    > 좋은 하루 되세염..

    >

  • Profile
    이슬이(참이슬) 2001.04.27 21:14
    procedure TForm1.ListBox1MouseMove(Sender: TObject; Shift: TShiftState; X,

    Y: Integer);

    var

    p : TPoint;

    dw : integer;

    idx : integer;



    begin

    application.hintcolor := claqua;

    application.hintpause := 0;

    if ListBox1.Items.Count <= 0 then

    System.Exit;

    {$R-} // Range Check Error를 뺀다.

    //리스트 박스내의 마우스의 x,y좌료를 나타낸당.



    P.X := x;

    P.Y := y;

    // 항목의 위치를 나타낸당.

    dw := SendMessage(listbox1.Handle,LB_ITEMFROMPOINT,5,MAKELPARAM(P.X,P.Y));

    // 항목의 위치를 idx에 입력한다.

    idx := LOWORD(dw);

    // 마우스가 항목을 가리키면 0 그렇지 않으면 1

    if HIWORD(dw) = 1 then // 마우스가 리스트박스 아이템 위치에 없을때.

    system.exit;

    listbox1.Hint := ListBox1.Items[idx]

    end;

    이것이 제가 여기 저기 뒤져서 소스를 찾아서 분석아닌 분석 한거 거든여..

    물론 mousemove이벤트에 처리를 해주었거든여..

    만약 아이템이 a,b,c가 있다면 맨처음 마우스가 c 로 가면 힌트는

    c가 나와여..그런데 문제는 c에서 리스트 박스를 빠져 나가지 않구 b로 바로 마우스를 움직였을때 힌트가 b가 나와야 하는데 그렇게 되질 않아염..

    님 설명대로x,y좌표는 동적으로 받아져 오는뎅 sendmessage부분이 동적으로 처리가 안되거든여..바쁘시더라도 알려주심 고맙겠습니다.