Graphisoft®

Dialog ManagerVersion: 2.0

리스트 박스

리스트 박스 컨트롤은 1개 이상의 항목들을 선택할 수 있는 항목 리스트를 표시하는 창입니다. 리스트 박스 컨트롤은 단일 선택(한 번에 한 항목만 선택 가능) 또는 다중 선택(한 번에 하나 이상의 항목 선택 가능)이 될 수 있습니다.

리스트 박스는 수평 그리고/또는 수직 스크롤 바를 가질 수 있습니다. 스크롤 바는 GRC 혹은 DGAppendDialogItem으로 리스트 박스를 생성할 때 정의할 수 있습니다. 만약 스크롤 바를 지정하지 않으면, 리스트 박스는 기본 수직 스크롤 바를 갖습니다. (비록 스크롤 바가 없는 리스트 박스를 정의할 가능성이 있지만) 만약 리스트 박스가 한 번에 전체 내용을 표시하기에 충분히 크지 않다면, 스크롤 바가 활성화되고 그렇지 않으면 비활성화됩니다. 사용자가 필요할 경우 리스트를 스크롤하지만, 스크롤 상자(thumb)의 위치는 사용자 액션뿐만 아니라 코드에서 DGListSetScrollPosition, DGListScrollDown, DGListScrollUp, DGListSetHScrollPosition 함수들에 의해서도 변경될 수 있습니다. 사용자는 리스트 항목들을 선택 혹은 선택 해제할 수 있습니다. 리스트 박스 항목을 선택하면 시각적 외형이 변하는데, 보통 선택된 항목들에 대하여 텍스트와 배경색이 운영체제가 지정한 컬러로 바뀝니다.

리스트 박스는 선택적 헤더를 가질 수 있습니다. 헤더는 리스트 박스의 위에 표시됩니다. 이것은 리스트 박스 열들에 대한 정보를 표시하는 데 사용되며 사용자가 리스트 박스 열들의 크기와 순서를 동적으로 조정할 수 있도록 구성될 수 있습니다.

    

항목 타입

DG_ITM_LISTBOX

서브 타입

서브 타입 의미
DG_LT_SINGLESELECT 1개의 선택만 가능합니다.
DG_LT_MULTISELECT 다중 선택이 가능합니다.

Flag

의미
DG_LT_NOPARTIALITEMS 이 flag가 세트되면 리스트 박스는 마지막에 부분적으로 보이는 리스트 항목을 숨기기 위해 리사이즈됩니다.
DG_LT_NOSCROLL 이 flag가 세트되면 리스트 박스는 스크롤 바를 갖지 않습니다.
DG_LT_VSCROLL 이 flag가 세트되면 리스트 박스는 수직 스크롤 바를 갖습니다. 이 flag는 DG_LT_NOSCROLL flag와 같이 조합될 수 없습니다.
DG_LT_HSCROLL 이 flag가 세트되면 리스트 박스는 수평 스크롤 바를 갖습니다. 이 flag는 DG_LT_NOSCROLL flag와 같이 조합될 수 없습니다.
DG_LT_HEADER 리스트 박스는 리스트 항목들 위에 헤더 컨트롤을 갖습니다.

GRC 사양

    SingleSelList    x  y  dx  dy  fontSpec  partItems  [scrollType]  itemSize  [headerFlag  headerSize]
    MultiSelList     x  y  dx  dy  fontSpec  partItems  [scrollType]  itemSize  [headerFlag  headerSize]

xy는 리스트 박스의 좌상단 코너의 픽셀 좌표입니다. dxdy는 컨트롤의 너비와 높이의 픽셀 크기입니다. fontSpec은 리스트 항목들의 글꼴 크기와 스타일을 선언합니다. partItemsDG_LT_NOPARTIALITEMS flag를 세트하는 데 사용됩니다. 만약 선택적인 scrollType flag가 없으면, 리스트 뷰는 수직 스크롤 바를 갖습니다. itemSize는 리스트 항목들의 픽셀 높이입니다. 만약 선택적인 headerFlag가 있으면, 헤더 크기도 반드시 지정해야 합니다.

fontSpec의 가능한 값은 다음과 같습니다:

Value DG 상수 조합은 DGSetItemFont에서 사용됩니다.
ExtraSmall DG_IS_EXTRASMALL
SmallPlain DG_IS_SMALL | DG_IS_PLAIN
SmallBold DG_IS_SMALL | DG_IS_BOLD
SmallItalic DG_IS_SMALL | DG_IS_ITALIC
SmallUnderline DG_IS_SMALL | DG_IS_UNDERLINE
LargePlain DG_IS_LARGE | DG_IS_PLAIN
LargeBold DG_IS_LARGE | DG_IS_BOLD
LargeItalic DG_IS_LARGE | DG_IS_ITALIC
LargeUnderline DG_IS_LARGE | DG_IS_UNDERLINE

partItems의 가능한 값은 다음과 같습니다:

의미
PartialItems DG_LT_NOPARTIALITEMS flag가 세트되지 않았습니다.
NoPartialItems DG_LT_NOPARTIALITEMS flag가 세트되어 있습니다.

scrollType의 가능한 값은 다음과 같습니다:

의미
NoScroll DG_LT_NOSCROLL flag가 세트되어 있습니다.
VScroll DG_LT_VSCROLL flag가 세트되어 있습니다.
HScroll DG_LT_HSCROLL flag가 세트되어 있습니다.
HVScroll DG_LT_HSCROLL | DG_LT_VSCROLL flag 조합이 세트되어 있습니다.

headerFlag의 가능한 값은 다음과 같습니다:

의미
HasHeader DG_LT_HEADER flag가 세트되어 있습니다.

메시지

메시지 의미
DG_MSG_CLICK 리스트 박스 항목이 클릭되었지만 선택은 변경되지 않았습니다. 메시지 데이터 파라미터는 long으로 캐스팅된 DGListMsgData structure에 대한 포인터입니다. 이 structure는 사용자 액션에 대한 정보를 포함하고 있습니다.
DG_MSG_CHANGE 만약 메시지 데이터 파라미터가 0이면, 리스트 박스에서 선택이 변경된 것입니다. 만약 메시지 데이터가 0이 아닌 값이면, 이 메시지는 한 리스트 항목이 새로운 위치로 드래그되었음을 의미합니다.
DG_MSG_DOUBLECLICK 리스트 뷰 항목이 더블 클릭되었습니다. 메시지 데이터 파라미터는 long으로 캐스팅된 DGListMsgData structure에 대한 포인터입니다. 이 structure는 사용자 액션에 대한 정보를 포함하고 있습니다.
DG_MSG_FOCUS 리스트 박스는 키보드 포커스를 얻었습니다/잃었습니다. 메시지 데이터는 각각 1 또는 0입니다.
DG_MSG_UPDATE 리스트 박스의 탭 필드 또는 리스트 항목이 다시 그려져야 합니다. 메시지 데이터 파라미터는 long으로 캐스팅된 DGListUpdateData structure에 대한 포인터입니다. 이 structure는 애플리케이션에 의해 탭 필드 또는 리스트 항목을 업데이트하기 위한 모든 필수 정보를 포함하고 있습니다.
DG_MSG_MOUSEMOVE 마우스가 리스트 박스 항목 위에 있습니다. 메시지 데이터 파라미터는 long으로 캐스팅된 DGListMsgData structure에 대한 포인터입니다. 이 structure는 사용자 액션에 대한 정보를 포함하고 있습니다.
DG_MSG_DRAGDROP 드래그 앤 드롭 관련 이벤트가 발생했습니다. 이 메시지는 DGEnableMessage로 활성화된 후에만 올 수 있습니다. 리스트 박스들은 드래그 소스 혹은 드래그 대상이 될 수 있습니다.
DG_MSG_LISTHEADERBUTTONCLICK 리스트 박스의 헤더 버튼이 클릭되었습니다. 헤더 버튼은 수직 스크롤 바 위에 표시됩니다.
DG_MSG_LISTHEADERCLICK 리스트 박스 헤더의 항목이 클릭되었습니다. 메시지 데이터 파라미터는 long으로 캐스팅된 DGListHeaderMsgData structure에 대한 포인터입니다. 이 structure는 클릭한 헤더 항목의 인덱스에 대한 정보를 포함하고 있습니다.
DG_MSG_LISTHEADERDRAG 리스트 박스 헤더의 항목이 새로운 위치로 드래그 되었습니다. 메시지 데이터 파라미터는 long으로 캐스팅된 DGListHeaderMsgData structure에 대한 포인터입니다. 이 structure는 드래그된 헤더 항목의 예전/새로운 인덱스에 대한 정보를 포함하고 있습니다.
DG_MSG_LISTHEADERRESIZE 리스트 박스 헤더 항목의 크기가 마우스 상호작용헤 의해 변경되었습니다. 메시지 데이터 파라미터는 long으로 캐스팅된 DGListHeaderMsgData structure에 대한 포인터입니다. 이 structure는 변경된 헤더 항목의 인덱스와 grow 값에 대한 정보를 포함하고 있습니다.

수정 Flag

DGListSelectItemDGListDeselectItem 함수들은 다이얼로그 콜백 함수에서 DG_MSG_INIT 메시지를 처리할 때 호출되는 경우를 제외하고 리스트 박스의 수정 flag를 세트합니다. flag는 리스트 박스에서 선택을 변경하고 DG_MSG_CHANGE 메시지를 생성하는 사용자 액션에 의해서도 세트될 수 있습니다. 수정 flag의 상태를 가져오거나 리셋(지우기)하려면 DGModified 또는 DGResetModified를 사용하십시오.

설명

리스트 박스에는 일반 및 구분자 리스트 항목이 포함될 수 있습니다. DGListInsertItemDGListInsertSeparator를 호출하여 일반 및 구분자 항목을 리스트 박스에 삽입하고, DGListDeleteItem을 호출하여 이 항목들을 모두 제거합니다. 현재 리스트 박스에 있는 항목 수는 DGListGetItemCount에서 검색할 수 있습니다. 리스트 박스의 현재 항목들의 수는 DGListGetItemCount로 가져올 수 있습니다.

각 리스트 항목의 텍스트 스타일, 상태(사용 가능, 회색, 비활성화) 및 색상은 DGListSetItemStyle, DGListSetItemStatus, DGListSetItemColor에 의해 별도로 변경될 수 있습니다. 이러한 리스트 항목 프로퍼티들을 가져오려면 각각 DGListGetItemStyle, DGListGetItemStatus, DGListGetItemColor를 사용하십시오. 각 리스트 항목은 아무 항목 지정 사용자 데이터를 저장하기 위해 사용될 수 있는 사용자 지정 값을 가질 수 있습니다. DGListSetItemUserDataDGListGetItemUserData는 이 값에 접근할 수 있게 해줍니다.

리스트 항목들의 내용은 더 많은 열로 나눌 수 있습니다. 이 문서에서 "열" 대신 "탭 필드"라는 표기법을 사용합니다. 그 이유는 리스트 항목 안에 있는 열들의 텍스트가 탭 ('\t') 문자를 삽입하여 텍스트로 분리될 수 있기 때문입니다. DGListSetTabFieldCountDGListSetTabFieldData를 사용하여 탭 필드의 숫자와 각각의 프로퍼티를 세트하십시오. 필드의 너비를 계산할 때 DGListGetItemWidth를 호출하여 가장 오른쪽 탭 영역의 최대 가능한 끝 위치를 얻습니다. 내용은 justify되고 탭 영역 안에서 잘릴 수 있습니다. 정렬 및 절단 프로퍼티는 DGListGetTabFieldData 함수로 가져올 수 있습니다. 탭 필드의 내용은 DGListSetTabItemTextDGListGetTabItemText로 세트하고 가져올 수 있습니다.

탭 필드의 아이콘을 설정하는 방법은 2가지가 있습니다. 한 가지 가능성은 DGListSetTabItemIcon에 의해 아이콘 핸들이 있는 아이콘을 지정하는 것이고, 다른 하나는 DGListSetTabItemIconId 또는 DGListSetTabItemIconResource에 의해 리소스 ID로 세트하는 것입니다. 아이콘 핸들은 DGListGetTabItemIcon으로 가져올 수 있고, 아이콘 ID와 아이콘의 리소스 모듈 ID는 DGListGetTabItemIconIdDGListGetTabItemIconResource로 각각 가져올 수 있습니다.

텍스트와 마찬가지로 아이콘도 탭 필드 내에서 justify 됩니다. 탭 필드에는 아이콘 하나와 텍스트가 함께 포함될 수 있습니다. 이 경우 DG_IS_CENTER justification은 허용되지 않습니다. 아이콘은 텍스트의 시작 또는 끝에 위치해야 합니다. 만약 아이콘이 탭 필드의 시작 부분에 있는 경우 justification은 자동으로 DG_IS_LEFT로 세트되고, 아이콘이 끝 부분에 있는 경우 justification은 자동으로 DG_IS_RIGHT로 세트됩니다.

탭 필드는 DG 또는 애플리케이션에 의해 그려질 수 있습니다. DGListSetTabFieldUpdateFlag를 사용하여 탭 필드의 업데이트 flag를 변경합니다. 이 flag가 true으로 세트된 후, 다이얼로그 콜백 함수는 탭 필드를 업데이트해야할 때마다 DG_MSG_UPDATE 메시지를 수신해야 합니다. 메시지 데이터 파라미터는 애플리케이션에 의해 탭 필드를 업데이트하는 데 필요한 모든 정보를 포함하는 DGListUpdateData structure에 대한 포인터입니다. 애플리케이션은 원하는 내용을 그려야 합니다; 다이얼로그 콜백 함수가 리턴된 후, 회색 및 강조 표시는 DG에서 처리합니다.

또한 리스트 항목들은 DG 또는 애플리케이션으로 그릴 수 있습니다. DGListSetItemOwnerDrawFlag를 사용하여 리스트 항목의 업데이트 flag를 변경합니다. 이 flag가 true으로 세트된 후 다이얼로그 콜백 함수는 리스트 항목을 업데이트해야할 때마다 DG_MSG_UPDATE 메시지를 수신해야 합니다. 메시지 데이터 파라미터는 애플리케이션에 의해 리스트 항목을 업데이트하는 데 필요한 모든 정보를 포함하는 DGListUpdateData structure의 포인터입니다. 애플리케이션은 원하는 내용을 그려야 합니다; 다이얼로그 콜백 함수가 리턴된 후 회색 및 강조 표시는 DG에서 처리합니다.

리스트 박스에 수평 스크롤 바가 있는 경우, 스크롤 바의 크기는 항상 끝 위치와 마지막 탭 필드의 스타일에 따라 달라집니다. 만약 탭 필드가 이전에 DGListSetTabFieldData에 의해 정의되지 않은 경우, 스크롤 바의 크기는 가장 긴 리스트 항목과 같습니다. 만약 마지막 탭 필드의 타입이 DG_IS_NOTRUNC이고 업데이트 flag가 false인 경우(참고: DGListSetTabFieldUpdateFlag), 스크롤 바의 크기는 가장 긴 리스트 항목과 같습니다. 다른 모든 경우 스크롤 바의 크기는 마지막 탭 필드의 끝 위치와 같습니다.

많은 리스트 항목들이 삽입 혹은 삭제되거나, 리스트 항목들의 더 많은 파라미터들, 즉 텍스트, 컬러, 스타일, 상태 등은 리스트 지정 함수를 호출하여 동시에 변경되며, 원하지 않는 화면 업데이트를 피하기 위해 DGListDisableDrawDGListEnableDraw로 이 함수 호출들을 감싸는 것이 좋습니다. DGListEnableDraw 자체가 리스트를 업데이트하지 않으므로, 잘못된 영역을 다시 그리는 것은 애플리케이션의 책임입니다. 만약 전체 리스트가 거의 유효하지 않으면, DGInvalidateItem 또는 DGRedrawItem을 사용하여 리스트를 업데이트하십시오. 그러나 만약 몇 개의 리스트 항목이나 탭 필드만 다시 그려야 하는 경우 DGListRedrawItem 또는 DGListRedrawTabItem을 사용하십시오.

리스트 항목들의 픽셀 높이는 DGListSetItemHeightDGListGetItemHeight로 세트하고 가져올 수 있습니다. DGListGetItemRect를 사용하여 특정 리스트 항목의 직사각형을 가져옵니다. 이 함수는 리스트 항목이 보이는지 여부를 테스트하는 데에도 적합합니다. 리스트 박스를 리사이즈할 때, 마지막 리스트 항목이 부분적으로 표시될 수 있습니다. 이런 행동은 대개 용납할 수 없습니다. 이 문제를 방지하려면 리스트 박스가 생성된 후 및 크기가 변경될 때마다 DGListSetNoPartialItems를 호출하십시오.

리스트 박스는 단일 선택 또는 다중 선택일 수 있습니다. 사용자는 마우스 또는 키 누름을 통해 일반적인 방법으로 리스트 항목들을 선택할 수 있습니다. 프로그램 코드에서 하나 이상의 리스트 항목들을 선택하거나 선택 취소하려면 DGListSelectItemDGListDeselectItem을 각각 호출하십시오. 선택된 리스트 항목들의 수를 가져오려면 DGListGetSelCount를 사용하고, 그것들의 인덱스를 얻으려면 DGListGetSelected 또는 DGListGetSelItems를 사용하십시오. 리스트 박스의 빈 클라이언트 영역(리스트 항목이 없는 곳)을 마우스로 클릭하면 이전 선택한 것들이 모두 해제합니다. 이 경우 애플리케이션에게 통지하기 위해 DG_MSG_CHANGE 메시지가 송신됩니다. 키 누름을 통한 선택도 지원됩니다. 검색은 아무 탭 필드 상에서 이루어질 수 있습니다. (탭 필드 인덱스를 지정하기 위해 DGListSetTabFieldToSearch를 사용하십시오) DG는 단일 접두 문자 뿐만 아니라 접두 단어로도 리스트 항목을 검색할 수 있습니다.

단일 선택 리스트 박스의 리스트 항목들은 마우스를 클릭하고 추적하여 다시 정렬할 수 있습니다. 이를 먼저 하기 위해서는 DGEnableMessage를 호출하여 리스트 박스 항목에 대한 DG_MSG_MOUSEMOVE 메시지를 활성화하고, 리스트 항목이 드래그 가능함을 나타내는 작은 위-아래 화살표인 DG_LIST_DRAGICON으로 탭 필드 중 하나의 이미지를 세트해야 합니다. DG_MSG_MOUSEMOVE를 처리하고 있으며 커서가 ID DG_LIST_DRAGICON인 아이콘을 포함하는 리스트 탭 필드 위에 있을 때, 다이얼로그 콜백 함수는 커서를 리스트 드래그 커서(작은 위-아래 화살표)로 변경하기 위해 DG_LIST_INDRAGAREA를 리턴해야 합니다. 커서가 이 드래그 커서로 바뀌면서 사용자는 리스트 항목들을 드래그할 수 있습니다. 즉, 마우스를 클릭하고 추적하여 순서를 변경합니다. 얇은 점선 프레임을 드래그할 때 드래그된 항목이 표시됩니다. 리스트 항목들은 DGListInsertSeparator로 리스트 박스에 삽입된 구분자 라인들 사이에서만 드래그될 수 있습니다. 만약 드래그 전과 후에 항목의 위치가 달라지면, 다이얼로그 콜백 함수는 0이 아닌 메시지 데이터가 있는 DG_MSG_CHANGE 메시지를 수신합니다. 메시지 데이터에서 드래그된 리스트 항목의 예전 및 새로운 인덱스를 가져오려면 DGListGetOldDragPosDGListGetNewDragPos를 각각 사용하십시오.

리스트 항목의 탭 필드의 내용은 텍스트 그리고/또는 아이콘일 뿐만 아니라 다른 다이얼로그 항목일 수도 있습니다. 리스트 박스 항목에 나타나는 다이얼로그 항목들을 온탭(ontab) 항목이라고 합니다. DGListSetDialItemOnTabField에 의해 탭 필드에 온탭 다이얼로그 항목을 할당할 수 있습니다.

리스트 박스는 DG의 포커스 가능한 컨트롤 중 하나입니다. 리스트 박스가 사용자 동작의 결과로 키보드 포커스를 얻거나 잃을 때, 다이얼로그 콜백 함수는 DG_MSG_FOCUS 메시지를 수신합니다. 키보드 포커스는 DGSetFocus에 의해 프로그램 코드에서 리스트 박스로 세트할 수 있습니다. 현재 키보드 포커스가 있는 컨트롤을 가져오려면 DGGetFocus를 사용하십시오.

DG의 키보드 포커스와 포커스 가능한 컨트롤 카테고리들은 본질적으로 Macintosh 운영체제와 동일한 의미를 갖습니다. (즉, DG와 Macintosh에서 포커스 가능한 컨트롤들의 타입이 동일함) 그러나 Windows에서는 더 많은 컨트롤들이 키보드 포커스를 가질 수 있습니다. DG의 포커스 가능한 컨트롤들은 Windows의 포커스 가능한 컨트롤들의 부분집합을 형성합니다. DGSetFocusDGGetFocus 함수들은 DG의 포커스 가능한 컨트롤에만 작동합니다.

리스트 박스에 헤더를 표시하는 방법은 2가지가 있습니다. 만약 리스트 박스가 GRC 설명에 의해 생성되면 GRC 파일에서 헤더를 활성화할 수 있습니다. 동적으로 생성된 리스트 박스 컨트롤들에 의해 헤더는 DGAppendDialogItem의 파라미터로 지정됩니다. 일단 리스트 박스에 대해 헤더가 생성되면, 헤더의 크기와 가시성을 변경할 수 없습니다. 헤더의 높이는 DGListGetHeaderHeight로 가져올 수 있습니다.
헤더는 헤더 항목의 수 및 크기가 DG에 의해 대응하는 탭 필드와 동기화되거나 애플리케이션에 의해 독립적으로 처리되도록 구성될 수 있습니다. 헤더는 DGListSetHeaderFlagsDGListSetHeaderItemCount 함수에 의해 구성됩니다.
헤더 항목들은 텍스트 및 아이콘을 표시할 수 있으며, DGListSetHeaderItemTextDGListSetHeaderItemIcon 함수로 세트할 수 있습니다. 헤더 항목의 글꼴 스타일과 정렬을 세트하기 위해 DGListSetHeaderItemFontDGListSetHeaderItemFlags 함수가 사용됩니다.
DGListSetHeaderItemFlags 함수에 의해 isSizeable flag가 세트된 헤더 항목들만 크기를 조정할 수 있습니다. 헤더 항목들은 마우스 상호작용 또는 DGListSetHeaderItemSize 함수가 있는 코드를 이용해 크기를 조정할 수 있습니다. 마우스 상호작용으로 헤더 항목의 크기를 DGListSetHeaderItemMinSize 함수에 의해 설정된 최소 크기보다 작게 축소할 수 없습니다.
헤더 항목에서 리스트 박스 열의 정렬 순서를 표시할 수 있습니다. 기본 및 보조 정렬 순서는 단순 및 이중 삼각형으로 표시되며 위 또는 아래를 가리킵니다. 정렬 화살표를 표시하거나 숨기기 위해 DGListSetHeaderItemArrowType 함수를 사용합니다.

첫 번째 헤더 항목은 항상 0 위치에서 시작합니다. 오른쪽 마진 헤더 항목의 오른쪽은 항상 마지막 탭 필드의 오른쪽과 겹칩니다. 만약 인접한 2개의 탭 필드 사이에 공간이 있고 isSynchron flag가 리스트 박스 헤더에 세트된 경우, 헤더 항목들의 마진은 탭 필드 사이의 공간 중간과 일치합니다. 만약 리스트 박스에 수평 스크롤 바가 있고 헤더 항목이 리사이즈되는 경우, 이 헤더 항목으로부터 오른쪽에 있는 모든 항목들은 오른쪽 또는 왼쪽으로 미끄러지고, 헤더 항목의 너비와 리스트 박스 행의 너비는 끊임없이 변화합니다. 만약 리스트 박스에 수평 스크롤 바가 없는 경우, 헤더의 크기는 항상 일정하게 유지됩니다. 이 경우 사용자가 헤더 항목을 확장하려면 선택한 항목에서 오른쪽으로 확장해야 하며, 다른 크기의 헤더 항목은 아직 최소 크기를 얻지 못한 크기를 찾아야 합니다. 찾은 헤더 항목이 좁혀집니다. 이러한 헤더 항목이 없으면 크기 조정에 실패합니다. 동시에 사용자가 헤더 항목을 좁히고자 하는 경우, 선택한 항목의 오른쪽으로 첫 번째 크기 조절 가능한 헤더 항목이 넓어집니다.
만약 사용자가 마우스 상호작용에 의해 헤더 항목의 크기를 변경하면(이 프로퍼티는 항목별로 하나씩 세트할 수 있음), 애플리케이션은 통지를 받게 되고 헤더 항목들의 크기에 대응하는 탭 필드의 크기를 변경할 수 있는 가능성이 있습니다. 만약 isSynchron flag가 리스트 박스 헤더에 세트되고 애플리케이션이 DG_MSG_LISTHEADERRESIZE 메시지를 처리하지 않는 경우(애플리케이션이 0을 리턴함), 리스트 박스는 탭 필드의 크기를 자동으로 세트합니다. 만약 애플리케이션이 이 메시지를 처리하면 1을 리턴해야 합니다. 만약 isSynchron flag가 세트되지 않은 경우, DG는 탭 필드의 크기를 세트하지 않습니다.
만약 사용자가 (코드로) 탭 필드의 크기를 수정하고 isSynchron flag가 리스트 박스 헤더에 세트되면 - 이것은 기본 설정 - 리스트 박스는 헤더 항목들의 크기를 탭 필드들의 크기로 조정합니다. 그러나 isSynchron flag가 세트되지 않은 경우, 애플리케이션도 헤더 항목들의 크기를 조정해야 합니다.
만약 사용자가 리스트 박스 컨트롤의 크기를 조정하고 리스트 박스에 수평 스크롤 바가 있는 경우, 탭 필드 및 헤더 항목의 크기는 자동으로 변경되지 않습니다. 만약 리스트 박스 컨트롤의 크기를 조정하고 리스트 박스에 수평 스크롤 바가 없는 경우, 애플리케이션은 탭 필드의 크기를 조정해야 합니다. 이 경우 isSynchron flag가 리스트 박스 헤더에 세트된 경우, 리스트 박스는 헤더 항목들을 재조정하고 그렇지 않으면 헤더 항목들도 애플리케이션에 의해 리사이즈되어야 합니다.

키보드 포커스를 포커스 가능한 다이얼로그 항목으로 설정한 다음 Windows의 [F1] 키 또는 Macintosh의 [Help] 키를 누르거나 항목의 마우스 오른쪽 버튼을 클릭하거나 다이얼로그 캡션에 있는 도움말[?] 버튼을 클릭한 뒤 항목 자체를 클릭하여 항목의 자세한 도움말 정보를 호출할 수 있습니다. 만약 툴팁이 활성화되면 단축 도움말 정보가 평소와 같이 표시됩니다. 리스트 박스에 도움말 텍스트를 표시하는 방법은 2가지가 있습니다. 리스트 박스의 각 항목에 대해 도움말 텍스트를 표시하거나 리스트 박스에 도움말 텍스트를 하나만 표시할 수 있습니다. 리스트 박스의 도움말 스타일은 DGListSetHelpStyleDGListGetHelpStyle 함수로 각각 세트하거나 가져올 수 있습니다.

요구사항

버전: DG 18.0.0 또는 이후
헤더: DG.h

참고사항

다이얼로그 항목 타입, 리스트 관련 함수
DGAppendDialogItem, DGGetFocus, DGInvalidateItem, DGModified, DGRedrawItem, DGResetModified, DGSetFocus, DGSetItemFont, 콜백 함수
DG_MSG_CLICK, DG_MSG_CHANGE, DG_MSG_DOUBLECLICK, DG_MSG_FOCUS, DG_MSG_INIT, DG_MSG_UPDATE, DG_MSG_MOUSEMOVE
DG_MSG_LISTHEADERCLICK, DG_MSG_LISTHEADERDRAG, DG_MSG_LISTHEADERRESIZE
DG_MSG_LISTHEADERBUTTONCLICK, DGListMsgData, DGListUpdateData, DGListHeaderMsgData