채팅프로그램 채팅창을 리스트박스로 만들고있는데요

흠:ㅎㅇㅎㅇ
큼:ㅋㅋ
ㅁㄹㅇㄹㅇㄹㅇㄹ:123

이런식으로 말을 칠때마다 한줄씩 내려가는데
셀 개수가 최대가 되면 스크롤 바가 생기고 밑으로 내려가잖아요?(LB_SETTOPINDEX 메시지 보냈을시)
근데 리스트박스가 계속 내려가는 와중에 스크롤바를 드래그하거나 마우스 휠을 굴려서 위로 올리면 자동으로 밑으로 내려가지 않게(LB_SETTOPINDEX 메시지를 안보내게) 하려는데 방법을 통 모르겠네요
리스트박스 서브클래싱해서 WM_VSCROLL이나 WM_MOUSEWHEEL 오는거 wparam lparam들 봐봐도 도움 될만한 정보는 없구요
GetScrollInfo인가 하는 함수가 있던데 이건 리스트 내 스크롤 말고 그냥 스크롤만 가능한거같더라구요(불확실)
스크롤 바가 맨 밑에 닿아있는지를 체크할 방법 없을까요?
따로 방법이 없다면 쓸 방법을 하나 생각했었는데
리스트에 스트링이 10개 들어간다면
LB_GETTOPINDEX로 맨 위 인덱스 구해와서 이 값에다 리스트 세로 폭인 10만큼을 더해서 리스트에 적힌 총 스트링 개수랑 같으면 스크롤을 끝까지 내린걸로 판단하는거임
근데 이거 말고도 방법 있을거같은데 ㅠ