질문과 답변

ListView Control의 Scroll이동후 첫번째 Row 확인하는 방법은? 날짜:2023-4-18 10:44:21 조회수:258
작성자 : 파란화분
포인트 : 7
가입일 : 2023-04-17 17:34:53
방문횟수 : 21
글 1개, 댓글 1개
소개 :
작성글 보기
쪽지 보내기
안녕하십니까?
선배님들의 도움을 받고자 이렇게 글을 올립니다.

제목에서와 같이 ListView Controll에서
Scroll이동시, 이동된 첫번째 줄이 몇번째인지 확인을 하고자 합니다.
구글링을 열심히 해보았으나, 아직까지 답변을 찾지 못해, 이렇게 문의드립니다.

제가 찾은 자료는 WM_NOTIFY를 통해 부모윈도우로 전달되어, 이를 확인하면 된다고하는데 스크롤 이벤트도 확인이 안되고 있습니다.


        //////////////////////// 아래 소스는 구글링해서 찾은 예제 입니다.
        case WM_NOTIFY:
        {
            HWND hListView = GetDlgItem(hdlg, IDC_DATA_LISTVIEW);
            NMHDR* pnmh = (NMHDR*)lParam;

            // Handle the LVN_ENDSCROLL message
            //if (pnmh->code == LVN_ENDSCROLL && pnmh->hwndFrom == hListView)
            {
                MessageBox(hdlg, "User has finished scrolling the list view control!", "LVN_ENDSCROLL", MB_OK);
                return TRUE;
            }


미리 감사말씀 드립니다.

ps.
첨부파일에서 exe파일은 확장자만 변경하여 올렸습니다.
  떆珥덈㈃꽦씤留쏆궗吏 꽌硫대쭏궗吏 씠쓬 留븐쓬 룄냽룞留덉궗吏 닔쁺뿭踰덇컻留뚮궓 떖TV 寃쎌쟾泥좎쓽젙遺뿭踰덇컻留뚮궓 以묐룞뿭梨꾪똿 猷곕(룞씤吏 빞궗 援먯궗 뮮移섍린 꽭씠踰 19 룞씤吏 솕옣떎 紐쎌뭅 留덉궗吏 썑湲 꽦씤留뚰솕 궓옄

븘씪씪룞異쒖옣꺏 긽꽌硫대쾲媛쒕쭔궓 옣룞留뚮궓썑湲 怨쇰┝룞踰덇컻留뚮궓 븿룊援곕쭧궗吏 넚李쎈룞씠留덉궗吏 꽌臾몄떆옣뿭留뚮궓썑湲 겢씪슦뱶 뵫,냼븸닾옄 醫낅쪟,媛긽솕룓 젣옉 뿉꼫吏 荑꾩뭅 移좎쟾룞留뚮궓썑湲 뿬二쇱텧옣꺏 留덈Ъ 뿬옄移쒓뎄瑜 냼媛쒗빀땲떎 뙆씪뵒뒪겕 媛뺣턿肄쒓구꺏 뼱뵾罹먯뒳
첨부 파일 230418-104354_ListView_MSDN_1994.zip(17198 byte). 다운로드 : 80

목록보기 삭제 수정 신고 스크랩

daypark 4월19일 12:58:52  

LVN_ENDSCROLL을 받았을 때 lParam으로 전달되는 NMLVSCROLL.dy를 읽으면 현재 스크롤 위치를 알 수 있고 이 값을 항목 높이로 나누면 되지 않을까 싶습니다.

파란화분 4월19일 1:36:43  

말씀 감사합니다.

LVN_ENDSCROLL 이벤트가 확인이 되어야 하는데, 왜 확인이 안되는지 모르겠습니다.
( MessageBox가 생성이 안되네요. ㅡㅡ; )


로그인하셔야 댓글을 달 수 있습니다.