DGListSetDialItemOnTabField
단일 또는 다중 선택 리스트 박스에서 현재 선택한 항목의 주어진 탭 필드 상에 나타나게 될 다이얼로그 항목의 인덱스를 세트합니다.
void DGListSetDialItemOnTabField ( short dialId, short item, short tabIndex, short dialItem );
파라미터
- dialId
- 다이얼로그 또는 탭 페이지의 ID입니다. DG_TOP_MODAL은 최상위 Modal 다이얼로그를 지정합니다.
- item
- 다이얼로그 항목의 1-기반 인덱스입니다.
- tabIndex
- 탭 필드의 1-기반 인덱스입니다.
- dialItem
- 리스트 박스에 나타나게 될 다이얼로그 항목의 1-기반 인덱스입니다.
설명
리스트 박스에 나타나는 다이얼로그 항목들을 온탭 항목들이라고 합니다. 모든 DG 다이얼로그 항목들을 온탭 항목들로 사용할 수는 없습니다. 다음 타입의 항목들만 dialItem 파라미터에 의해 참조될 수 있습니다: 체크박스, 날짜 & 시간 컨트롤, 싱글 라인 Edit 컨트롤, 팝업 컨트롤, 진행 바, 푸시 버튼, 라디오 버튼, 스크롤 바, 슬라이더 바, 스핀 컨트롤, 유저 컨트롤. 아이콘과 그림 다이얼로그 항목들은 허용하지 않는다는 것을 참고하십시오. 왜냐하면 아이콘들은 좀 더 우아한 방식으로 리스트 항목에 삽입될 수 있기 때문입니다. (DGListSetTabItemIcon과 DGListSetTabItemIconId를 보십시오) DG는 온탭 사용자 다이얼로그 항목들 대신 소유자 그리기 리스트 탭 필드들을 제공합니다. (DGListSetTabFieldUpdateFlag를 보십시오) 리스트 박스 탭 필드에 현재 할당된 다이얼로그 항목의 인덱스를 가져오려면 DGListGetDialItemOnTabField를 사용하십시오.
비록 단순 (푸시가 아닌) 체크박스들은 옵탭 항목들이 될 수 있지만, 리스트 항목들 상에서 체크박스들을 표시하는 것보다는 특수 빌트인 아이콘들을 사용하는 것을 권장합니다. 가능한 아이콘 ID들은 다음과 같습니다:
-
값 의미 DG_LIST_CHECKEDICON 체크된 체크박스 아이콘입니다. DG_LIST_GRAYCHECKICON 회색처리된 체크박스 아이콘입니다. DG_LIST_MIXEDCHECKICON 채워진 체크박스 아이콘입니다. 선택/미선택이 섞여 있거나 정의되지 않은 선택에 사용합니다. DG_LIST_FRAMELESSCHECKEDICON 프레임 없는 체크박스 아이콘입니다. DG_LIST_UNCHECKEDICON 체크되지 않은 체크박스 아이콘입니다.
이 체크박스 아이콘들의 주요 장점은 투명하고 사이즈를 변경할 수 있다는 것입니다. 만약 애플리케이션이 이 체크박스들을 사용하면, DG_MSG_CLICK 메시지를 처리하고 사용자가 클릭했을 때 체크박스 아이콘들을 변경해야 합니다. 사용자가 체크박스를 클릭했는지 여부를 테스트하려면, 애플리케이션은 클릭한 수평 위치와 탭 필드의 시작점/끝점을 비교해야 합니다.
DG의 2.2 버전부터는 단일-선택 뿐만 아니라 다중 선택 리스트 박스들도 온탭 다이얼로그 항목들을 가질 수 있습니다. 리스트 박스(item)와 온탭 항목(dialItem)은 반드시 동일한 다이얼로그 또는 탭 페이지 위에 있어야 합니다. 그리고 온탭 항목은 리소스 항목 리스트에서 리스트 박스보다 앞서야 합니다. (dialItem < item) 탭 필드는 1개의 온탭 항목만 포함할 수 있습니다. 온탭 항목은 DGListSetTabFieldData에서 정의한 justification flag에 따라 탭 필드에서 정렬됩니다. 온탭 항목들은 리스트 항목 직사각형에서 수직으로 중앙 정렬됩니다.
다이얼로그 콜백 함수에서 DG_MSG_INIT 메시지를 처리할 때 온탭 다이얼로그 항목들은 반드시 DGHideItem으로 숨겨져야 합니다. 리스트 박스에 속한 가장 높은 온탭 항목의 높이를 결정하고 (DGGetItemRect를 사용할 것) DGListSetItemHeight를 사용하여 이 값에 2 또는 4를 더해서 리스트 항목 높이를 세트하는 것을 권장합니다. 이 방법을 사용하면 모든 온탭 항목들이 리스트 항목 직사각형 안에 들어맞게 되고 항목들 주변에 선택 컬러 프레임이 보이는 것이 보장됩니다. 프레임 없는 Edit 컨트롤을 온탭 항목으로 사용하십시오.
온탭 항목들은 현재 선택한 리스트 항목에만 나타날 수 있습니다. 예전에 선택한 리스트 항목을 선택 해제했을 때, DG는 자동으로 온탭 항목들을 제거합니다. 다음에 선택한 리스트 항목에 온탭 항목이 적용되고 그 항목을 선택 해제할 때까지는 온탭 항목이 계속 유지됩니다. 이것은 리스트 박스에서 선택이 변경될 때마다 DGListSetDialItemOnTabField를 호출하고 온탭 항목(들)은 새로 선택항 항목 위에 나타나야 한다는 것을 의미합니다. (즉, 이 루틴은 다이얼로그 콜백 함수에서 리스트 박스에 대한 DG_MSG_CHANGE 메시지들을 처리할 때 호출되어야 합니다) 온탭 항목들은 애플리케이션으로부터 더 많은 처리를 요구하지 않습니다. 그와 관련된 다른 작업(예. 스크롤, 이동, 보여주기, 숨기기 등)들은 DG가 내부적으로 수행합니다.
DG_MSG_CHANGE 메시지를 처리할 때, 애플리케이션은 숨겨진 온탭 항목들의 값을 가져오고 방금 선택이 해제된 리스트 항목 위에서 이 값들을 표시해야 합니다. 그리고 나서 새로운 값들을 현재 선택한 리스트 항목에서 온탭 항목들로 넘겨주어야 합니다.
예전에 세트한 온탭 다이얼로그 항목을 탭 필드에서 제거하려면 0을 가진 dialItem 파라미터와 함께 DGListSetDialItemOnTabField를 호출하십시오.
온탭 항목은 일반 다이얼로그 항목으로 간주됩니다. 온탭 항목은 해당 타입 관련 DG 함수들을 이용하여 평소대로 처리할 수 있습니다.
요구사항
- 버전: DG 2.0.0 또는 이후
- 헤더: DG.h
- 라이브러리 가져오기: DG.lib [WIN]
- 모듈: DGLib [MAC], DG.dll [WIN]
참고사항
DG 함수, 다이얼로그 항목 타입, 리스트 박스, DGListGetDialItemOnTabField
DGGetItemRect, DGHideItem, DGListSetItemHeight, DGListSetItemText, DGListSetTabFieldData, DGListSetTabFieldUpdateFlag, 콜백 함수
DG_MSG_CLICK, DG_MSG_CHANGE, DG_MSG_INIT