2009년 12월 3일 목요일

[VC] ListBox의 ScrollBar 가장 최근에 포커스 주기

 

ListBox의 ScrollBar 가장 최근에 포커스 주는 방법.

엄청 삽질했다. -_-;;

 

시리얼로 데이터가 들어오면 리스트박스에다가 뿌려주는데 정해진 공간을 넘으면 세로로 스크롤바가 생긴다. 근데 이게 맨 첫줄만 계속 보여주지 최근에 들어온 데이터가 들어오는 맽 끝줄은 보이지 않는거다.

 

※ 왼쪽 빨간 박스와 오른쪽 빨간 박스의 차이점을 알겠는가. 사용자가 손으로 긁어 옮긴것이 아니다.

 

젱장.

 

뒤지고, 뒤지고, 또 뒤지고.

 

겔겔거리다가 찾아냈다.

 

오른쪽 Listbox는 control 변수로 m_ctrlCmd02란 이름을 가지고 있고 x는 int형.

 

x = m_ctrlCmd02.GetCount();
m_ctrlCmd02.SetScrollPos(SB_VERT, x);

 

이렇게 해주면 왼다. 카운트 몇개냐? 해서 그 카운트에 스크롤바의 포커스를 옮겨주면 된다.

우여곡절끝에 하긴 했는데 사용하면서 다른 문제가 날지 안날지는 있어봐야 알겠지.

 

훗.

 

 

 

 

+ 덧 +

 

망했다 ㅠㅠㅠㅠㅠㅠ

스크롤바는 내려가는데 화면은 안내려간다 -_-;

뭥미...... 아 어쩐담.

 

 

 

+ 덧 +

다 필요없다.

 

m_ctrlCmd02.SetCurSel(m_ctrlCmd02.AddString(m_strCmd02buff));

 

이거 한 줄이면 처음에 했던 스크롤 어쩌구도 필요없이 포커스까지 갖추면서 스크롤도 함께 내려간다.

굳 乃