목록 상자 스타일

CreateWindow 또는 CreateWindowEx 함수를 사용하여 목록 상자를 만들려면 LISTBOX 클래스, 적절한 창 스타일 상수 및 다음 스타일 상수를 사용하여 목록 상자를 정의합니다. 컨트롤을 만든 후에는 이러한 스타일을 수정할 수 없습니다.

상수 설명
LBS_COMBOBOX
콤보 상자의 일부임을 목록 상자에 알립니다. 이를 통해 두 컨트롤 간의 조정이 가능하여 통합 UI를 제공합니다. 콤보 상자 자체에서 이 스타일을 설정해야 합니다. 스타일이 콤보 상자 이외의 것으로 설정되면 목록 상자가 콤보 상자의 자식으로 잘못 간주되어 오류가 발생합니다.
LBS_DISABLENOSCROLL
목록 상자에 스크롤할 항목이 충분하지 않은 경우 사용하지 않도록 설정된 가로 또는 세로 스크롤 막대를 표시합니다. 이 스타일을 지정하지 않으면 목록 상자에 항목이 충분하지 않을 때 스크롤 막대가 숨겨집니다. 이 스타일은 WS_VSCROLL 또는 WS_HSCROLL 스타일과 함께 사용해야 합니다.
LBS_EXTENDEDSEL
SHIFT 키와 마우스 또는 특수 키 조합을 사용하여 여러 항목을 선택할 수 있습니다.
LBS_HASSTRINGS
목록 상자에 문자열로 구성된 항목이 포함되도록 지정합니다. 목록 상자는 애플리케이션이 LB_GETTEXT 메시지를 사용하여 특정 항목에 대한 텍스트를 검색할 수 있도록 문자열에 대한 메모리와 주소를 유지합니다. 기본적으로 소유자가 그린 목록 상자를 제외한 모든 목록 상자에는 이 스타일이 있습니다. 이 스타일을 사용하거나 사용하지 않고 소유자가 그린 목록 상자를 만들 수 있습니다.
이 스타일이 없는 소유자가 그린 목록 상자의 경우 LB_GETTEXT 메시지는 항목(항목 데이터)과 관련된 값을 검색합니다.
LBS_MULTICOLUMN
가로로 스크롤되는 다중 열 목록 상자를 지정합니다. 목록 상자는 열의 너비를 자동으로 계산하거나 애플리케이션에서 LB_SETCOLUMNWIDTH 메시지를 사용하여 너비를 설정할 수 있습니다. 목록 상자에 LBS_OWNERDRAWFIXED 스타일이 있는 경우 목록 상자가 WM_MEASUREITEM 메시지를 보낼 때 애플리케이션이 너비를 설정할 수 있습니다.
LBS_MULTICOLUMN 스타일의 목록 상자는 세로로 스크롤할 수 없으며 수신하는 모든 WM_VSCROLL 메시지를 무시합니다.
LBS_MULTICOLUMNLBS_OWNERDRAWVARIABLE 스타일은 결합할 수 없습니다. 둘 다 지정된 경우 LBS_OWNERDRAWVARIABLE은 무시됩니다.
LBS_MULTIPLESEL
사용자가 목록 상자에서 문자열을 클릭하거나 두 번 클릭할 때마다 문자열 선택을 켜거나 끕니다. 사용자는 임의 개수의 문자열을 선택할 수 있습니다.
LBS_NODATA
데이터 없는 목록 상자를 지정합니다. 목록 상자의 항목 수가 1,000개를 초과할 때 이 스타일을 지정합니다. 데이터 없음 목록 상자에는 LBS_OWNERDRAWFIXED 스타일도 있어야 하지만 LBS_SORT 또는 LBS_HASSTRINGS 스타일은 없어야 합니다.
데이터 없음 목록 상자는 항목에 대한 문자열 또는 비트맵 데이터가 포함되어 있지 않다는 점을 제외하면 소유자가 그린 목록 상자와 비슷합니다. 항목을 추가, 삽입 또는 삭제하는 명령은 항상 지정된 항목 데이터를 무시합니다. 목록 상자 내에서 문자열을 찾는 요청은 항상 실패합니다. 시스템은 항목을 그려야 할 때 소유자 창에 WM_DRAWITEM 메시지를 보냅니다. WM_DRAWITEM 메시지와 함께 전달되는 DRAWITEMSTRUCT 구조체의 itemID 멤버는 그려질 항목의 줄 번호를 지정합니다. 데이터 없음 목록 상자는 WM_DELETEITEM 메시지를 보내지 않습니다.
LBS_NOINTEGRALHEIGHT
목록 상자의 크기가 목록 상자를 만들 때 애플리케이션에서 지정한 크기와 정확히 일치하도록 지정합니다. 일반적으로 시스템은 목록 상자가 일부 항목을 표시하지 않도록 목록 상자의 크기를 조정합니다.
LBS_OWNERDRAWVARIABLE 스타일이 있는 목록 상자의 경우 LBS_NOINTEGRALHEIGHT 스타일이 항상 적용됩니다.
LBS_NOREDRAW
변경 내용이 있을 때 목록 상자의 모양이 업데이트되지 않도록 지정합니다.
컨트롤의 다시 그리기 상태를 변경하려면 WM_SETREDRAW 메시지를 사용합니다.
LBS_NOSEL
목록 상자에 볼 수 있지만 선택할 수 없는 항목이 포함되도록 지정합니다.
LBS_NOTIFY
사용자가 목록 상자 항목(LBN_SELCHANGE)을 클릭하거나 항목(LBN_DBLCLK)을 두 번 클릭하거나 선택을 취소(LBN_SELCANCEL)할 때마다 목록 상자가 부모 창에 알림 코드를 보내도록 합니다.
LBS_OWNERDRAWFIXED
목록 상자의 소유자가 콘텐츠 그리기를 담당하고 목록 상자의 항목 높이가 동일하도록 지정합니다. 소유자 창은 목록 상자가 만들어질 때 WM_MEASUREITEM 메시지를 받고, 목록 상자의 시각적 측면이 변경될 때 WM_DRAWITEM 메시지를 받습니다.
LBS_OWNERDRAWVARIABLE
목록 상자의 소유자가 콘텐츠 그리기를 담당하고 목록 상자의 항목 높이가 가변적임을 지정합니다. 소유자 창은 목록 상자가 만들어질 때 상자의 각 항목에 대해 WM_MEASUREITEM 메시지를 받고 목록 상자의 시각적 측면이 변경될 때 WM_DRAWITEM 메시지를 받습니다.
이 스타일로 인해 LBS_NOINTEGRALHEIGHT 스타일이 사용하도록 설정됩니다.
LBS_MULTICOLUMN 스타일이 지정된 경우 이 스타일은 무시됩니다.
LBS_SORT
목록 상자의 문자열을 사전순으로 정렬합니다.
LBS_STANDARD
목록 상자의 문자열을 사전순으로 정렬합니다. 부모 창은 사용자가 목록 상자 항목을 클릭하거나 항목을 두 번 클릭하거나 선택을 취소할 때마다 알림 코드를 받습니다. 목록 상자에는 세로 스크롤 막대가 있고 모든 면에 테두리가 있습니다. 이 스타일은 LBS_NOTIFY, LBS_SORT, WS_VSCROLLWS_BORDER 스타일을 결합합니다.
LBS_USETABSTOPS
문자열을 그릴 때 목록 상자가 탭 문자를 인식하고 확장할 수 있도록 합니다. LB_SETTABSTOPS 메시지를 사용하여 탭 정지 위치를 지정할 수 있습니다. 기본 탭 위치는 32개의 대화 상자 템플릿 단위만큼 떨어져 있습니다. 대화 상자 템플릿 단위는 대화 상자 템플릿에 사용되는 디바이스 독립적인 단위입니다. 측정값을 대화 상자 템플릿 단위에서 화면 단위(픽셀)로 변환하려면 MapDialogRect 함수를 사용합니다.
LBS_WANTKEYBOARDINPUT
사용자가 키를 누르고 목록 상자에 입력 포커스가 있을 때마다 목록 상자의 소유자가 WM_VKEYTOITEM 메시지를 받도록 지정합니다. 이렇게 하면 애플리케이션이 키보드 입력에 대해 특수 처리를 수행할 수 있습니다.

요구 사항

요구 사항
헤더
Winuser.h