.grc 파일에서 유저 컨트롤이 요구하는 포맷이 무엇인가요?
.grc 파일에서 UserControl 항목들이 요구하는 포맷은 항상 두통을 유발합니다. 이 문서에서는 UserControl 정의 배후에 있는 서로 다른 숫자들의 의미를 설명할 것입니다. 타입별로 보도록 하겠습니다. 예제들은 DevKit의 일부인 DG_Test로부터 대부분 가져왔습니다.
UserControl 257
이 컨트롤은 특수 컨트롤들의 집합입니다; 이것은 외형적으로는 너무 다르지만 기능적으로는 비슷한 컨트롤들을 캡슐화하였습니다. 기본적으로 이 컨트롤은 클릭했을 때 팔레트가 튀어나오는 버튼으로 구성되어 있습니다. 버튼의 내용은 사용자가 팔레트 위로 마우스를 갖다 댔을 때 업데이트 됩니다.
예제: material, pen, layer palette pop-up.
이 컨트롤의 일반적인 포맷은 다음과 같습니다:
UserControl 87 82 33 19 257 0x0001 0x1100 0 /* Line Pen Setting */
이제 '숫자들'을 하나씩 보겠습니다:
항목 | 설명 | 예제 |
---|---|---|
UserControl |
다이얼로그 항목의 타입 | |
87 82 33 19 |
항목의 사각형 (top, left, width, height) | |
257 |
사용자 컨트롤의 타입 | |
0x0001 |
사용자 컨트롤의 서브타입을 정의합니다. (UCDefs.h 에서 T257_ 로 시작하는 상수들을 보세요) |
0x0001 은 T257_PEN 입니다. 그래서 이것은 펜 컨트롤입니다. |
0x1100 |
상위 바이트는 사용자 컨트롤의 외형을 수정합니다. (UCDefs.h 에서 CS257_ 로 시작하는 상수들을 보세요)참고: 모든 타입의 컨트롤에게 모든 flag들이 유효하지 않습니다. 하위 바이트는 항상 00 입니다. |
0x11 은 CS257_HEADER | CS257_SMALLFONT 입니다.
그래서 팝업 팔레트가 헤더를 갖게 됩니다. 그리고 메뉴 항목들과 헤더는 작은 애플리케이션 글꼴을 사용하게 됩니다. |
0 |
텍스트 팝업에만 사용됩니다. T257_TEXT 와 T257_MENU ;
이것은 메뉴 항목들을 포함하는 'STR#' 리소스의 id를 포함합니다.참고: Dialog Manager의 버그로 인해 이것은 현재 사용할 수 없습니다. |
UserControl 258
이 컨트롤은 아이콘-기반 컨트롤입니다. 지정된 리소스에서 나오는 아이콘이 평평하게 배치됩니다.
예제: library browser의 type selector.
이 컨트롤의 일반적인 포맷은 다음과 같습니다:
UserControl 12 8 30 28 258 2 14 0 2 32510
이제 '숫자들'을 하나씩 보겠습니다:
항목 | 설명 | 예제 |
---|---|---|
UserControl |
다이얼로그 항목의 타입 | |
12 8 30 28 |
항목의 사각형 (top, left, width, height) | |
258 |
사용자 컨트롤의 타입 | |
2 |
당신이 보고자 하는 아이콘들의 행(row) 수를 지정합니다. | |
14 |
아이콘들의 총 수를 알려줍니다. | |
0 |
항상 | |
2 |
사용자 컨트롤의 외형을 수정합니다. (UCDefs.h 에서 CS258_ 로 시작하는 상수들을 보세요) |
2 는 CS258_MOUSEPOSOPEN 입니다.
그래서 팝업 팔레트는 마우스 위치에 상대적으로 나타나게 됩니다. (컨트롤의 사각형과 대조적) |
32510 |
아이콘 리소스의 id; 아이콘 모두를 포함합니다. |
UserControl 259
이 컨트롤은 아이콘-기반 팝업 컨트롤입니다. 지정된 리소스에서 나오는 아이콘이 팝업 팔레트 위에 나타납니다.
예제: 컨트롤 박스 위에서 그룹 선택자를 일시 중지시킵니다.
이 컨트롤의 일반적인 포맷은 다음과 같습니다:
UserControl 12 8 66 22 259 1 3 0 0 32520
이제 '숫자들'을 하나씩 보겠습니다:
항목 | 설명 |
---|---|
UserControl |
다이얼로그 항목의 타입 |
12 8 30 28 |
항목의 사각형 (top, left, width, height) |
259 |
사용자 컨트롤의 타입 |
1 |
당신이 보고자 하는 아이콘들의 행(row) 수를 지정합니다. |
3 |
아이콘의 총 수를 알려줍니다. |
0 |
항상 |
0 |
항상 |
32510 |
아이콘 리소스의 id; 모든 아이콘을 포함합니다. 이 아이콘은 개별 아이콘들을 만들기 위해 조각들로 절단됩니다. |
UserControl 261
이 컨트롤은 라인 타입 팝업 컨트롤입니다. 버튼의 내용은 사용자가 마우스를 팔레트 위로 갖다댔을 때 업데이트됩니다. 이 컨트롤의 특수성은 서버 애플리케이션을 콜백하여 라인 타입을 컨트롤에 그리는 것입니다.
예제: 모든 라인 타입 팝업
이 컨트롤의 일반적인 포맷은 다음과 같습니다:
UserControl 55 33 180 40 261 0x0100 /* Fill Line type */
이제 '숫자들'을 하나씩 보겠습니다:
항목 | 설명 | 예제 |
---|---|---|
UserControl |
다이얼로그 항목의 타입 | |
12 8 30 28 |
항목의 사각형 (top, left, width, height) | |
261 |
사용자 컨트롤의 타입 | |
0x0100 |
상위 바이트는 사용자 컨트롤의 외형을 변경합니다. (UCDefs.h 에서 CS261_ 로 시작하는 상수들을 보세요)
하위 바이트는 항상 00 입니다. |
0x01 은 CS261_HEADER 입니다. 그래서 팝업 팔레트가 헤더를 갖게 됩니다. |