ComboBox 컨트롤

ComboBox 컨트롤은 미리 정의된 값의 드롭다운 목록과 사용자가 값을 입력할 수 있는 편집 필드를 표시합니다. 이 컨트롤을 문자열 또는 정수 속성과 연결하려면 컨트롤 테이블의 속성 열에 속성 이름을 입력합니다.

컨트롤 특성

이 컨트롤에서 다음 특성을 사용할 수 있습니다. 이벤트를 사용하여 특성값을 변경하려면 EventMapping 테이블의 ControlEvent에 컨트롤을 구독하고 특성 열에 특성의 식별자를 나열합니다. 이벤트 열에 ControlEvent의 식별자를 입력합니다.

특성 식별자 16진수 비트 설명
IndirectPropertyName 컨트롤과 연결된 간접 속성의 이름입니다. 간접 특성 비트가 설정되면 컨트롤이 이 이름을 가진 속성의 값을 표시하거나 변경합니다. 간접 특성 비트가 설정된 경우 이 이름은 컨트롤 테이블의 속성 열에 나열된 속성의 값이기도 합니다.
위치 대화 상자에서 컨트롤의 위치입니다. 컨트롤의 왼쪽 모서리에 있는 컨트롤의 너비, 높이 및 좌표를 Control 테이블의 너비, 높이, X 및 Y 열에 입력합니다. 길이 및 거리에 설치 관리자 단위를 사용합니다.
PropertyName 이 컨트롤과 연결된 속성의 이름입니다. 간접 특성 비트가 설정되지 않은 경우 컨트롤은 이 이름을 가진 속성의 값을 표시하거나 변경합니다. 이 특성은 컨트롤 테이블의 속성 열에 지정됩니다.
PropertyValue 이 컨트롤에 의해 표시되거나 변경된 속성의 현재 값입니다. 간접 특성 비트가 설정되지 않은 경우 PropertyName 값입니다. Indirect 특성 비트가 설정된 경우 IndirectPropertyName 값입니다. 특성이 변경되면 컨트롤에 새 값이 반영됩니다.
Text 텍스트 문자열의 글꼴 및 글꼴 스타일을 설정하려면 표시된 문자의 문자열 앞에 {\style} 또는 {&style}을 접두사로 묶습니다. 여기서 style은 TextStyle 테이블의 TextStyle 열에 나열된 식별자입니다. 둘 중 어느 것도 없지만 DefaultUIFont 속성이 유효한 텍스트 스타일로 정의된 경우 해당 글꼴이 사용됩니다. 사용자가 입력할 수 있는 문자 수를 지정하려면 글꼴 사양 다음에 {n}을 추가합니다. 여기서 n은 양의 정수입니다.
Visible 0x00000000 0x00000001
숨겨진 컨트롤입니다. 표시되는 컨트롤입니다.
컨트롤 테이블의 속성 열 비트 단어에 이 비트를 포함하면 컨트롤을 만들 때 컨트롤이 표시되거나 숨겨집니다.
ControlCondition 테이블 사용하여 컨트롤을 숨기거나 표시할 수도 있습니다.
Enabled 0x00000000 0x00000002
사용 안 함 상태의 컨트롤입니다. 사용 상태의 컨트롤입니다.
컨트롤을 만들 때 컨트롤을 사용하도록 설정하려면 컨트롤의 특성 열에 있는 비트 단어에 이 비트를 포함합니다.
ControlCondition 테이블 사용하여 컨트롤을 사용하거나 사용하지 않도록 설정할 수도 있습니다.
오목 0x00000000 0x00000004
기본 비주얼 스타일을 표시합니다. 움푹 들어간 3D 모양으로 컨트롤을 표시합니다.
컨트롤 테이블의 특성 열에 비트 단어에 해당 비트를 포함합니다.
간접 0x00000000 0x00000008
컨트롤은 컨트롤 테이블의 속성 열에 속성값을 표시하거나 변경합니다. 컨트롤은 컨트롤 테이블의 속성 열에 식별자가 나열된 속성의 값을 표시하거나 변경합니다.
이 컨트롤과 연결된 속성이 간접적으로 참조되는지 여부를 확인합니다.
정수 0x00000000 0x00000010
컨트롤과 연결된 속성은 문자열 값입니다. 컨트롤과 연결된 속성은 정수 값입니다.
컨트롤을 만들 때 이 특성을 설정하려면 컨트롤 테이블의 특성 열의 비트 단어에 이 비트를 포함합니다.
RTLRO 0x00000000 0x00000020
컨트롤의 텍스트는 왼쪽에서 오른쪽 읽기 순서로 표시됩니다. 컨트롤의 텍스트는 오른쪽에서 왼쪽으로 읽기 순서로 표시됩니다.
RightAligned 0x00000000 0x00000040
컨트롤의 텍스트가 왼쪽에 맞춰집니다. 컨트롤의 텍스트가 오른쪽에 맞춰집니다.
LeftScroll 0x00000000 0x00000080
스크롤 막대는 컨트롤의 오른쪽에 있습니다. 스크롤 막대는 컨트롤의 왼쪽에 있습니다.
BiDi 0x000000E0 RTLRO, RightAlignedLeftScroll 특성의 조합에 대해 이 값을 설정합니다.
정렬 0x00010000으로 설정되지 않음
사전순으로 표시되는 항목입니다. ListView 테이블에 지정된 순서대로 항목이 표시됩니다.
컨트롤은 ComboBox 테이블을 쿼리하고 정렬 스타일 비트가 설정된 경우 ComboBox는 CBS_SORT 스타일을 가지며 정렬에서 지정한 대로 항목을 표시합니다. 이 스타일 비트를 설정하지 않으면 항목이 사전순으로 표시됩니다.
ComboList 0x00020000으로 설정되지 않음
편집 필드가 있는 콤보 상자입니다. 편집 필드가 있는 콤보 상자는 정적 텍스트 필드로 대체됩니다.
UsersLanguage 0x00000000 0x00100000
데이터베이스 코드 페이지에서 만든 글꼴입니다. 사용자의 기본 UI 코드 페이지에서 만든 글꼴입니다.

설명

이 컨트롤은 CreateWindowEx 함수를 사용하여 COMBOBOX 클래스에서 만들 수 있습니다. CBS_AUTOHSCROLL, WS_TABSTOP, WS_GROUP, WS_CHILD 스타일이 있습니다. ComboList 비트가 켜져 있으면 CBS_DROPDOWNLIST 스타일도 있고, 그렇지 않으면 CBS_DROPDOWN 스타일도 있습니다.

입력할 수 있는 텍스트의 길이는 Control 테이블의 텍스트 필드 시작 부분에서 중괄호 안에 0부터 2147483646까지의 숫자를 배치하여 제한할 수 있습니다. 예를 들어 텍스트 필드가 {80}으로 시작하는 경우 문자열의 길이는 80자로 제한됩니다. 테이블에 이러한 제한이 제공되지 않거나 0이 지정되면 길이가 가능한 최대 문자(2147483646자)로 설정됩니다. 음수 또는 숫자가 아닌 값은 오류를 생성합니다.

화면 읽기 프로그램과의 호환성을 위해 ComboBox 컨트롤을 첫 번째 활성 컨트롤로 사용하여 대화 상자를 작성할 때 편집 필드에 속하는 텍스트 필드를 대화 상자 테이블의 첫 번째 활성 컨트롤로 만들어야 합니다. 정적 텍스트는 포커스를 가질 수 없으므로 대화 상자를 만들 때 편집 필드의 처음에 의도한 대로 포커스가 있습니다. 이렇게 하면 화면 읽기 프로그램에 올바른 정보가 표시됩니다.