'ListBox'에 해당되는 글 1건

  1. 2007.10.17 ListBox

ListBox

API Reference 2007. 10. 17. 11:00

리스트 박스는 선택 가능한 여러 개의 항목들을 나열해 놓고 그 중 하나( 또는 여러 개 )를 선택하는 컨트롤이며 여기서 항목이란 주로 문자열이다.


리스트 박스도 일종의 윈도우이며 "listbox" 라는 윈도우 클래스로 생성한다.

WS_CHILD | WS_VISIBLE 스타일은 기본적으로 지정해야 하며 이 외에 어떤 스타일을 지정하는가에 따라 리스트 박스의 모양과 동작이 달라진다.


LBS_MULTIPLESEL

여러 개의 항목을 선택할 수 있다. 이 스타일을 적용하지 않으면 디폴트로 하나만 선택할 수 있다.


LBS_NOTIFY

사용자가 목록중 하나를 선택했을 때 부모 윈도우로 통지 메시지를 보낸다.


LBS_SORT

추가된 항목들을 자동 정렬한다.


LBS_OWNERDRAW

문자열이 아닌 비트맵이나 그림을 넣을 수 있다.


LBS_STANDARD

LBS_NOTIFY | LBS_SORT | WS_BORDER



부모 윈도우로 통지 메시지를 보내는 것이 일반적이므로 LBS_NOTIFY 스타일은 거의 필수적으로 선택하는 것이 좋다.




부모 윈도우가 리스트 박스를 조작하고자 할 때는 리스트 박스 메시지를 사용한다.


LB_ADDSTRING

리스트 박스에 항목을 추가한다. lParam 으로 추가하고자 하는 문자열의 번지를 넘겨준다.


LB_DELETESTRING

항목을 삭제한다. wParam 으로 항목의 번호를 넘겨주며 남은 항목수를 리턴한다.


LB_GETCURSEL

현재 선택된 항목의 번호( index )를 조사한다.


LB_GETTEXT

지정한 항목의 문자열을 읽는다. wParam 에 항목 번호, lParam 에 문자열 버퍼의 번지를 넘기면 버퍼에 문자열을 채워준다.


LB_GETCOUNT

항목의 개수를 조사한다.


LB_SETCURSEL

wParam 이 지정한 항목을 선택한다.




리스트 박스에서 어떤 사건이 발생했을 때 부모 윈도우로 다음과 같은 통지 메시지를 보낸다.


LBN_DBLCLK

리스트 박스를 더블클릭하였다.


LBN_ERRSPACE

메모리가 부족하다.


LBN_KILLFOCUS

키보드 포커스를 잃었다.


LBN_SELCANCEL

사용자가 선택을 취소하였다.


LBN_SELCHANGE

사용자에 의해 선택이 변경되었다.


LBN_SETFOCUS

키보드 포커스를 얻었다.


이 중 가장 자주 사용되는 통지 메시지는 선택이 변경될 때 보내지는 LBN_SELCHANGE 이다.

부모 윈도우는 WM_COMMAND 의 HIWORD( wParam ) 으로 전달된 통지 코드를 보고 리스트 박스에 무슨 사건이 발생했는지 알게 된다.

Posted by 명혀니
,