1.ListBox 생성


HWND hList; //전역변수


hList=CreateWindow("listbox",NULL,WS_CHILD | 

WS_VISIBLE | WS_BORDER |

LBS_NOTIFY | LBS_NOINTEGRALHEIGHT | 

WS_VSCROLL,

10,100,900,200,hWnd,(HMENU)

ID_LISTBOX,hInst,NULL);

SendMessage(hList, LB_RESETCONTENT,0,0);


2.Message종류


포인터 = 끝이 NULL값인 배열의 주소

포인터의 길이 = 배열의 크기(최대 크기)

아이템 인덱스 = 0을 기준으로 아이템의 인덱스

low = low-word 하위워드

high = high-word 상위워드

설정할 값 = 각 메세지마다 설정할 값

 

 

메세지

설명

wParam

lParam

LB_ADDFILE

DlgDirList 함수에 의해 채워진 리스트 박스에 파일을 추가한다.

사용 안함

포인터

LB_ADDSTRING

문자열 항목을 추가하여 그 인덱스를 리턴한다.

사용 안함

포인터

LB_DELETESTRING

문자열 항목을 삭제하며 남아있는 항목의 개수를 리턴한다.

아이템 인덱스

사용 안함

LB_DIR

파일 목록을 리스트 박스에 추가한다.

플래그

포인터

LB_FINDSTRING

주어진 검색식에 맞는 첫 번째 항목의 인덱스를 조사한다.

찾을 위치 0이면 처음부터

포인터

LB_FINDSTRINGEXACT

주어진 검색식과 정확하게 일치하는 항목의 인덱스를 조사한다.

찾을 위치 0이면 처음부터

포인터

LB_GETANCHORINDEX

마우스에 의해 마지막으로 선택된 항목의 인덱스를 조사한다.

사용 안함

사용 안함

LB_GETCARETINDEX

포커스 사각형을 가진 항목의 인덱스를 조사한다.

사용 안함

사용 안함

LB_GETCOUNT

총 항목 개수를 조사한다.

사용 안함

사용 안함

LB_GETCURSEL

현재 선택되어 있는 항목의 인덱스를 조사한다.

사용 안함

사용 안함

LB_GETHORIZONTALEXTENT

스크롤 가능한 폭을 픽셀 단위로 리턴한다.

사용 안함

사용 안함

LB_GETITEMDATA

주어진 항목의 데이터를 조사한다.

아이템 인덱스

사용 안함

LB_GETLOCALE

Locale 정보를 조사한다. 상위워드에는 국가코드, 하위워드에는 언어 ID가 전달된다.

사용 안함

사용 안함

LB_GETSEL

항목의 선택 상태를 조사한다.

아이템 인덱스

사용 안함

LB_GETSELCOUNT

다중 선택 리스트 박스에서 선택된 항목의 개수를 조사한다.

사용 안함

사용 안함

LB_GETSELITEMS

다중 선택 리스트 박스에서 선택된 항목의 인덱스를 조사한다.

포인터의 길이

포인터

LB_GETTEXT

주어진 항목의 문자열을 조사한다.

아이템 인덱스

포인터

LB_GETTEXTLEN

주어진 항목의 문자열 길이를 조사한다.

아이템 인덱스

사용 안함

LB_GETTOPINDEX

화면에 보이는 최상위 항목의 인덱스를 조사한다.

사용 안함

사용 안함

LB_INISTORAGE

대량의 데이터를 추가할 때 메모리를 미리 준비하도록 한다. 이 메세지를 미리 보내놓으면 필요한 만큼 메모리를 확보하므로 삽입 속도가 빨라진다.

아이템의 개수

메모리의 크기

LB_INSERTSTRING

주어진 위치에 문자열을 삽입한다.

아이템 인덱스 -1이면 마지막

포인터

LB_ITEMFROMPOINT

lParam으로 주어진 좌표에 가장 가까운 항목의 인덱스를 조사한다. 좌표는 리스트 박스의 작업영역 좌표이다.

사용 안함

low x좌표

high y좌표

LB_RESETCONTENT

모든 항목을 삭제한다.

사용 안함

사용 안함

LB_SELECTSTRING

주어진 검색식에 일치하는 첫 번째 문자열을 선택한다.

찾을 위치 0이면 처음부터

포인터

LB_SELITEMRANGE

주어진 범위의 항목들을 선택한다.

TRUE면 선택

ZERO면 반전

low 시작 값

high 끝 값

LB_SELITEMRANGEEX

주어진 범위의 항목들을 선택하되 시작 항목이 끝 항목보다 뒤쪽에 있으면 선택이 취소된다.

시작 인덱스

끝 인덱스

LB_SETANCHORINDEX

마우스에 의해 최후로 선택된 항목을 설정한다.

새로운 ANCHOR의 인덱스

사용 안함

LB_SETCARETINDEX

포커스 사각형을 주어진 항목으로 옮긴다.

설정할 값

TRUE,FALSE

LB_SETCOLUMNWIDTH

다중 컬럼 리스트 박스에서 컬럼의 폭을 픽셀 단위로 지정한다.

설정할 값

사용 안함

LB_SETCOUNT

총 항목의 개수를 설정한다.

설정할 값

사용 안함

LB_SETCURSEL

주어진 항목을 선택 상태로 만든다.

아이템 인덱스

사용 안함

LB_SETHORIZONTALEXTENT

스크롤이 가능한 폭을 픽셀 단위로 설정한다. 이 폭을 설정하지 않으면 항목의 길이가 아무리 길어도 수평 스크롤 바가 나타나지 않는다.

설정할 값

사용 안함

LB_SETITEMDATA

항목데이터를 대입한다.

아이템 인덱스

설정할 값

LB_SETITEMHEIGHT

개별 항목의 높이를 설정한다.

아이템 인덱스

설정할 값

LB_SETLOCALE

Locale값을 설정한다.

설정할 값

사용 안함

LB_SETSEL

다중 선택 리스트박스에서 한 항목을 선택 상태로 만든다.

TRUE면 선택

ZERO면 반전

아이템 인덱스

LB_SETTABSTOPS

탭 중지점을 설정한다.

설정할 값

찾아보세요

LB_SETTOPINDEX

주어진 항목이 화면의 최상위에 있도록 스크롤 시킨다.

아이템 인덱스

사용 안함

 

반환되는 메시지 :

LB_OKAY 0

LB_ERR (-1)

LB_ERRSPACE (-2)



Message종류 출처 : http://blog.naver.com/nawoo/80103964940



3.Message사용방법

종류 

사용법 

 LB_ADDSTRING

 SendMessage(hList, LB_ADDSTRING,0,(LPARAM)buffer);    //TCHAR buffer[256];

 LB_RESETCONTENT  SendMessage(hList, LB_RESETCONTENT,0,0);
 LB_GETCURSEL

 curNum = SendMessage(hList,LB_GETCURSEL,0,0);

 LB_DELETESTRING

 SendMessage(hList,LB_DELETESTRING,curNum,0);
 LB_ERR

 if(curNum == LB_ERR) "Nothing is Selected"

 LB_GETTEXT

 SendMessage(hList,LB_GETTEXT,curNum,(LPARAM)buffer);    //TCHAR buffer[256];

 LB_FINDSTRING

 curNum = SendMessage(hList, LB_FINDSTRING, -1, (LPARAM)buffer);    //TCHAR buffer[256];



'프로그래밍 > API' 카테고리의 다른 글

CEdit의 EN_CHANGE 와 EN_UPDATE 의 차이점  (0) 2013.04.13
WINAPI] GetOpenFileName  (0) 2013.03.18
BN_CLICKED, BM_CLICK  (0) 2013.03.07
IExplore Tab관련, 최상위창 만들기  (0) 2013.02.23
by 개발자가 되자! 2013. 2. 23. 11:54
| 1 |