본문 바로가기

My Study/Programming&Theory

API Listbox에서 가로 스크롤 넣기

현재 프로젝트를 하고 있던 도중 리스트박스를 만들어서 파일 경로를 얻어오는 부분을 구현하고 있었습니다.
뭐 다른 부분은 문제가 되질 않지만  파일 경로가 길어질 경우 리스트박스 가로 길이를 넘어서게 되서 뒷 부분이 짤려서 안보이게 되더군요.


보시면 저렇게 짤려있습니다;;

전 평소대로 생각했습니다. 그냥
리스트박스 속성창 뒤져보면 있겠지.. 찾아보았더니 있더군요?! 


디폴트 False로 되어 있어서 저 값을 True로 바꾸고 다시 실행시켜보았더니!
가로 스크롤은 안생기더군요.......... 그래서 인터넷에 찾아보니 친절히 코드가 있어서 그걸 가져다 사용해 보았습니다.
( 뭔가 오류가 쫌 있어서 살짝 바꾸기만 했습니다. )

출처 : http://stpetrus27.wordpress.com/2009/03/15/win32-control-listbox-%E3%80%90horizontal-scroll%E3%80%91/


코드는 그렇게 복잡하진 않습니다.
현재 리스트박스에 있는 문자열들의 가로 길이를 얻어와서
가장 긴 값을 가지고 LB_SETHORIZONTALEXTENT 메시지를 넘기는 것입니다.

그러면 리스트 박스에 가로 스크롤이 가능한 너비를 Pixel 단위로 지정 되게 되면서 가로 스크롤이 생기게 됩니다.
( 마지막에 뒷부분이 조금 잘리길래 +20 정도를 더 해주었습니다. ) 


리스트 박스에 LB_ADDSTRING 메시지로 값을 추가했을 때 바로 그 아래 문장에 해당 함수를 호출시켜주면 됩니다.
당연히 리스트박스 속성창에서 Horizontal Scroll 값True로 해주어야 합니다.
False로 했을 경우 위 함수를 적용시켜도 스크롤 바는 생기지 않습니다. 




만족스럽습니다. 이런거에서 시간을 낭비하고 있다니..ㅠ_ㅠ .. 짜증나는군요.

'My Study > Programming&Theory' 카테고리의 다른 글

API vs MFC  (1) 2011.11.30
Prefix list in executive component  (0) 2011.09.02
커널 데이터 버퍼  (0) 2011.07.26
Data Read/Write in Cache  (0) 2011.07.12
Windows Cache  (2) 2011.05.31