다이얼로그 항목 타입의 GRC 사양
DG 모듈을 이용하여 다이얼로그 항목들을 생성하는 방법은 2가지가 있습니다. 코드를 통해, 또는 리소스 스크립트를 통해 가능합니다. 리소스 스크립트에서 정의한 다이얼로그 항목들을 생성하려면, 애플리케이션은 GRC 파일 안에 항목들을 설명하는 GDLG 리소스를 공급해야 합니다. 이 페이지는 DG 모듈이 공급하는 다이얼로그 항목 타입들의 GRC 사양에 대한 모든 필수 정보에 접근하는 데 도움을 줍니다.
체크박스
날짜 & 시간 컨트롤
Edit 컨트롤
그룹 박스
리스트 박스
리스트 뷰
팝업 컨트롤
진행 바
푸시 버튼
푸시 메뉴 컨트롤
라디오 버튼
Rich Edit 컨트롤
스크롤 바
구분자 항목
슬라이더 바
스핀 컨트롤
스플리터 컨트롤
정적 텍스트
탭 컨트롤
트리 뷰
유저 컨트롤
유저 아이템
체크박스의 GRC 사양
CheckBox x y dx dy fontSpec "text" PushCheck x y dx dy fontSpec "text" IconCheckBox x y dx dy iconID IconPushCheck x y dx dy iconID
여기서 x와 y는 체크박스의 좌상단 코너의 픽셀 좌표입니다. dx와 dy는 컨트롤의 너비와 높이의 픽셀 좌표입니다. fontSpec은 체크박스 텍스트의 글꼴 크기와 스타일을 선언합니다. iconID는 아이콘 스타일 체크박스의 아이콘 리소스 ID를 정의합니다.
fontSpec의 가능한 값은 다음과 같습니다:
-
값 DGSetItemFont에서 사용하는 DG 상수 조합 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
제안된 크기
텍스트 스타일 체크박스의 경우, 다음 항목 높이를 제안합니다. GRC나 프로그램 코드로부터 체크박스를 생성할 때 이 값들을 사용하는 것을 권장합니다.
-
서브타입 dy (픽셀) DG_BT_TEXT 18 DG_BT_PUSHTEXT 20
날짜 & 시간 컨트롤의 GRC 사양
DateControl x y dx dy [Calendar] TimeControl x y dx dy
여기서 x와 y는 날짜 & 시간 컨트롤의 좌상단 코너의 픽셀 좌표입니다. dx와 dy는 컨트롤의 너비와 높이의 픽셀 크기입니다. Macintosh의 경우, 선택적인 Calendar flag는 아무런 효과가 없습니다. 이 컨트롤은 항상 DG_DT_DATE 서브타입으로 그려집니다.
Calendar의 가능한 값은 다음과 같습니다:
-
값 의미 Standard DG_DT_DATE 서브타입을 가진 컨트롤입니다. Standard는 기본값입니다. Calendar DG_DT_CALENDAR 서브타입을 가진 컨트롤입니다. (Windows 전용)
제안된 크기
날짜 & 시간 컨트롤의 경우, 제안된 항목 높이는 22 픽셀입니다. GRC나 프로그램 코드로부터 날짜 & 시간 컨트롤을 생성할 때 이 값을 사용하는 것을 권장합니다.
Edit 컨트롤의 GRC 사양
TextEdit x y dx dy fontSpec [editFlag] maxCount MultiLineEdit x y dx dy fontSpec [editFlag] scrollMode PasswordEdit x y dx dy fontSpec [editFlag] maxCount RealEdit x y dx dy fontSpec [editFlag] "minVal" "maxVal" AngleEdit x y dx dy fontSpec [editFlag] "minVal" "maxVal" PolarAngleEdit x y dx dy fontSpec [editFlag] "minVal" "maxVal" LengthEdit x y dx dy fontSpec [editFlag] "minVal" "maxVal" MMPointEdit x y dx dy fontSpec [editFlag] "minVal" "maxVal" IntEdit x y dx dy fontSpec [editFlag] "minVal" "maxVal" PosIntEdit x y dx dy fontSpec [editFlag] "minVal" "maxVal"
여기서 x와 y는 Edit 컨트롤의 좌상단 코너의 픽셀 좌표입니다. dx와 dy는 컨트롤의 너비와 높이의 픽셀 크기입니다. fontSpec은 컨트롤의 글꼴 크기와 스타일을 선언합니다. 선택적인 editFlag 파라미터는 frame, absolute/relative input, font change, update 그리고 read-only flag들의 아무 OR(|) 조합 중 하나가 될 수 있습니다. 만약 각 flag들의 기본값을 필요로 한다면, editFlag는 생략할 수 있습니다. maxCount는 싱글-라인 텍스트 및 패스워드 Edit 컨트롤에 입력할 수 있는 문자들의 최대 개수를 지정합니다. scrollMode는 멀티-라인 Edit 컨트롤이 수평 그리고/또는 수직 스크롤 바를 갖고 있어야 하는지 여부를 정의합니다. "minVal"과 "maxVal" 문자열은 숫자-타입 Edit 컨트롤의 범위를 초기화합니다. Double 값들은 여기서 일반적인 문자열 표현식으로 작성되어야 합니다.
fontSpec의 가능한 값은 다음과 같습니다:
-
값 DGSetItemFont에서 사용하는 DG 상수 조합 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
frame flag의 가능한 값은 다음과 같습니다:
-
값 의미 frame DG_ET_FRAME flag가 세트되었습니다. 이것은 기본값입니다. noFrame DG_ET_NOFRAME flag가 세트되었습니다.
절대/상태 input flag의 가능한 값은 다음과 같습니다:
-
값 의미 absolute DG_ET_ABSOLUTE flag가 세트되었습니다. 이것은 기본값입니다. relative DG_ET_RELATIVE flag가 세트되었습니다.
font change flag의 가능한 값은 다음과 같습니다:
-
값 의미 changeFont DG_ET_CHANGEFONT flag가 세트되었습니다. 이것은 기본값입니다. noChangeFont DG_ET_NOCHANGEFONT flag가 세트되었습니다.
update flag의 가능한 값은 다음과 같습니다:
-
값 의미 update DG_ET_UPDATE flag가 세트되었습니다. 이것은 기본값입니다. noUpdate DG_ET_NOUPDATE flag가 세트되었습니다. noDelay DG_ET_NODELAY flag가 세트되었습니다.
read-only flag의 가능한 값은 다음과 같습니다:
-
값 의미 editable DG_ET_EDITABLE flag가 세트되었습니다. 이것은 기본값입니다. readOnly DG_ET_READONLY flag가 세트되었습니다.
scrollMode의 가능한 값은 다음과 같습니다:
-
값 의미 HScroll Edit 컨트롤이 수평 스크롤 바를 갖고 있습니다. VScroll Edit 컨트롤이 수직 스크롤 바를 갖고 있습니다. HVScroll Edit 컨트롤이 수평 및 수직 스크롤 바를 갖고 있습니다. NoScroll Edit 컨트롤이 어떤 스크롤 바도 갖고 있지 않습니다.
제안된 크기
싱글-라인 Edit 컨트롤에 대하여 다음 항목 높이 값들을 권장합니다:
-
글꼴 크기 프레임 타입 픽셀 단위의 항목 높이 DG_IS_EXTRASMALL DG_ET_FRAME 16 DG_IS_EXTRASMALL DG_ET_NOFRAME 12 DG_IS_SMALL DG_ET_FRAME 21 DG_IS_SMALL DG_ET_NOFRAME 17 DG_IS_LARGE DG_ET_FRAME 24 DG_IS_LARGE DG_ET_NOFRAME 20
GRC 또는 프로그램 코드의 DGAppendDialogItem을 통해 싱글-라인 Edit 컨트롤이 생성되었을 때, DG는 자동으로 항목의 높이를 위의 값으로 조정하므로 컨트롤의 중심은 움직이지 않습니다. DGSetItemFont로 Edit 컨트롤의 글꼴의 크기가 변경되었을 때에도 같은 일이 발생합니다.
그룹 박스의 GRC 사양
GroupBox x y dx dy fontSpec groupStyle "text"
여기서 x와 y는 그룹 박스의 좌상단 코너의 픽셀 좌표입니다. dx와 dy는 컨트롤의 너비와 높이의 픽셀 크기입니다. fontSpec은 캡션 text의 글꼴 크기와 스타일을 선언합니다. groupStyle은 Macintosh의 경우 컨트롤의 외형을 지정합니다. 이 flag는 Windows에서는 효과가 없습니다.
fontSpec의 가능한 값은 다음과 같습니다:
-
값 DGSetItemFont에서 사용하는 DG 상수 조합 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
groupStyle의 가능한 값은 다음과 같습니다:
-
값 의미 Primary DG_GT_PRIMARY 서브타입이 세트되었습니다. Secondary DG_GT_SECONDARY 서브타입이 세트되었습니다.
리스트 박스의 GRC 사양
SingleSelList x y dx dy fontSpec partItems [scrollType] itemSize [headerFlag headerSize] MultiSelList x y dx dy fontSpec partItems [scrollType] itemSize [headerFlag headerSize]
여기서 x와 y는 리스트 박스의 좌상단 코너의 픽셀 좌표입니다. dx와 dy는 컨트롤의 너비와 높이의 픽셀 크기입니다. fontSpec은 리스트 항목들의 글꼴 크기와 스타일을 선언합니다. partItems는 DG_LT_NOPARTIALITEMS flag를 세트하는 데 사용합니다. 만약 선택적인 scrollType flag가 존재하지 않으면, 리스트 박스는 수직 스크롤 바를 갖고 있습니다. itemSize는 리스트 항목들의 픽셀 단위 높이입니다. 만약 선택적인 headerFlag가 존재한다면, 헤더 크기 역시 반드시 지정해야 합니다.
fontSpec의 가능한 값은 다음과 같습니다:
-
값 DGSetItemFont에서 사용하는 DG 상수 조합 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가 세트되었습니다.
리스트 뷰의 GRC 사양
SingleSelListView x y dx dy fontSpec imWidth imHeight cellWidth cellHeight lvModeFlag [NoScroll]
여기서 x와 y는 리스트 뷰의 좌상단 코너의 픽셀 좌표입니다. dx와 dy는 컨트롤의 너비와 높이의 픽셀 크기입니다. fontSpec은 항목 라벨들의 글꼴 크기와 스타일을 선언합니다. cellWidth, cellHeight 그리고 imWidth, imHeight는 각각 리스트 뷰 항목들과 항목 이미지들의 너비와 높이의 픽셀 크기입니다. lvModeFlag는 리스트 뷰 컨트롤의 뷰 모드를 정의합니다. 선택적인 NoScroll flag를 이용하면 리스트 뷰 컨트롤이 기본 수직 스크롤 바를 갖지 않은 채 생성됩니다.
fontSpec의 가능한 값은 다음과 같습니다:
-
값 DGSetItemFont에서 사용하는 DG 상수 조합 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
lvModeFlag의 가능한 값은 다음과 같습니다:
-
값 의미 bottomText DG_LVVM_BOTTOMTEXT 뷰 모드가 세트되었습니다. rightText DG_LVVM_RIGHTTEXT 뷰 모드가 세트되었습니다. singleColumn DG_LVVM_SINGLECOLUMN 뷰 모드가 세트되었습니다.
팝업 컨트롤의 GRC 사양
PopupControl x y dx dy listHeight textOffset [iconID1 itemText1] .... [iconIDi itemTexti] .... [iconIDn itemTextn]
여기서 x와 y는 팝업 컨트롤의 좌상단 코너의 픽셀 좌표입니다. dx와 dy는 컨트롤의 너비와 높이의 픽셀 크기입니다. listHeight와 textOffset은 선택사항이 아니지만 Windows에서만 사용합니다. listHeight는 드롭다운 리스트의 높이의 픽셀 크기입니다. textOffset은 팝업 항목들의 텍스트의 왼쪽으로부터의 픽셀 오프셋입니다. 만약 선택적인 iconIDi와 itemTexti (1 <= i <= n) 파라미터들이 존재하면, 이것들은 n 조각의 팝업 항목들을 초기화합니다. iconIDi와 itemTexti는 i번째 팝업 항목의 아이콘과 텍스트(2개의 인용구 마크 사이에 주어짐)를 각각 정의합니다. 비록 iconIDi and itemTexti 파라미터들이 선택사항이지만 이것들은 반드시 쌍으로 사용하거나 생략해야 합니다. 즉, iconIDi 또는 itemTexti는 홀로 사용할 수 없습니다.
iconIDi의 가능한 값은 다음과 같습니다:
-
값 의미 NoIcon 팝업 항목이 아이콘을 갖고 있지 않습니다. 257 <= iconID <= 511 팝업 항목이 리소스에 주어진 아이콘을 갖고 있습니다.
설명
팝업 항목은 아이콘과 항목 텍스트를 갖고 있습니다. 아이콘은 항상 항목 텍스트의 왼쪽에 있습니다. Macintosh의 경우, 항목이 아이콘을 갖고 있지 않은 경우 항목 텍스트가 왼쪽에 표시됩니다. 그러나 Windows의 경우, 텍스트의 위치는 GRC의 textOffset 파라미터에 주어진 값만큼 왼쪽으로부터 떨어져 있습니다.
드롭다운 리스트의 너비는 팝업 항목들 중에서 가장 긴 문자열의 길이에 따라 달라집니다. 만약 드롭다운 리스트가 가장 긴 팝업 항목을 표시하기에 충분히 넓지 않다면, 자동으로 확장됩니다.
Windows 전용:
- 시스템 콤보박스의 높이는 글꼴에 의해 결정됩니다. DG는 이 기본 높이를 변경합니다. 그래서 항목의 높이는 GRC에서 지정한 크기와 동일합니다.
- GRC 사양의 listHeight 파라미터는 드롭다운 리스트의 픽셀 단위 높이를 정의합니다. 시스템은 전체 팝업 항목들만 표시하도록 자동으로 리스트를 단축시킵니다. 만약 리스트가 모든 팝업 항목들을 한번에 표시하기에 충분히 크지 않다면, 수직 스크롤 바가 표시됩니다.
진행 바의 GRC 사양
ProgressBar x y dx dy min max [frameType]
여기서 x와 y는 진행 바의 좌상단 코너의 픽셀 좌표입니다. dx와 dy는 컨트롤의 너비와 높이의 픽셀 크기입니다. min과 max는 진행 바의 초기 범위를 정의합니다. 만약 선택적인 frameType flag를 생략하면, 얇은 3차원 경계를 가진 진행 바가 그려집니다.
frameType의 가능한 값은 다음과 같습니다:
-
값 의미 StaticEdge DG_FT_STATIC 프레임 타입이 세트되었습니다.. ClientEdge DG_FT_CLIENT 프레임 타입이 세트되었습니다.. ModalFrame DG_FT_MODAL 프레임 타입이 세트되었습니다..
푸시 버튼의 GRC 사양
Button x y dx dy fontSpec [appearanceType] "text" IconButton x y dx dy iconID
여기서 x와 y는 푸시 버튼의 좌상단 코너의 픽셀 좌표입니다. dx와 dy는 컨트롤의 너비와 높이의 픽셀 크기입니다. fontSpec은 버튼 text의 글꼴 크기와 스타일을 선언합니다. iconID는 아이콘 스타일 푸시 버튼의 아이콘 리소스 ID를 정의합니다.
fontSpec의 가능한 값은 다음과 같습니다:
-
값 DGSetItemFont에서 사용하는 DG 상수 조합 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
appearanceType의 가능한 값은 다음과 같습니다: (Macintosh의 푸시 버튼에만 영향을 미침)
-
값 의미 Normal 이것은 기본값입니다. 푸시 버튼이 일반 edge를 갖습니다. (DG_BA_NORMAL) BevelEdge 푸시 버튼이 bevel edge를 갖습니다. (DG_BA_BEVEL)
제안된 크기
단순 텍스트 푸시 버튼들의 경우, 제안된 항목 크기는 20 픽셀입니다. Windows의 경우, 포커스 직사각형에 대한 충분한 공간을 확보하기 위해 DG가 자동으로 단순 텍스트 푸시 버튼의 높이를 4 픽셀씩 증가시킵니다.
아이콘 버튼의 경우, 버튼 크기는 아이콘 크기보다 가로, 세로 방향으로 최소 8 픽셀 이상 커야 합니다. GRC 또는 프로그램 코드로부터 푸시 버튼을 생성할 때 이 값들을 사용하는 것을 권장합니다.
푸시 메뉴 컨트롤의 GRC 사양
IconMenuCheck x y dx dy [iconID1] ... [iconIDi] ... [iconIDn] IconMenuRadio x y dx dy groupID [iconID1] ... [iconIDi] ... [iconIDn]
여기서 x와 y는 푸시 메뉴 컨트롤의 좌상단 코너의 픽셀 좌표입니다. dx와 dy는 컨트롤의 너비와 높이의 픽셀 크기입니다. groupID는 컨트롤이 속한 라디오 버튼들의 그룹의 1-기반 인덱스를 정의합니다. 만약 선택적인 iconIDi (1 <= i <= n) 파라미터들이 존재한다면, 이것들은 팝업 팔레트의 아이콘 버튼들의 아이콘 리소스 ID들을 제공하여 푸시 메뉴 항목들의 n 조각들을 초기화합니다. 이 아이콘 ID들은 여러 행들로 랩핑(wrap)될 수 있습니다.
설명
만약 푸시 메뉴 컨트롤의 항목 타입이 DG_ITM_RADIOBUTTON이면, 동일한 다이얼로그 또는 탭 페이지의 다른 라디오 버튼들과 함께 그룹화될 수 있습니다. 그룹화 정보는 GRC에서만 지정할 수 있습니다. (사용자 액션 또는 프로그램 코드로 인해) 어떤 그룹의 라디오 버튼을 켜면, DG는 자동으로 해당 그룹의 다른 라디오 버튼들을 끕니다.
라디오 버튼의 GRC 사양
RadioButton x y dx dy fontSpec groupID "text" PushRadio x y dx dy fontSpec groupID "text" IconRadioButton x y dx dy groupID iconID IconPushRadio x y dx dy groupID iconID
여기서 x와 y는 라디오 버튼의 좌상단 코너의 픽셀 좌표입니다. dx와 dy는 컨트롤의 너비와 높이의 픽셀 크기입니다. groupID는 컨트롤이 속한 라디오 버튼들의 그룹의 1-기반 인덱스입니다. fontSpec은 라디오 버튼 text의 글꼴 크기와 스타일을 선언합니다. iconID는 아이콘 스타일 라디오 버튼의 아이콘 리소스 ID를 정의합니다.
fontSpec의 가능한 값은 다음과 같습니다:
-
값 DGSetItemFont에서 사용하는 DG 상수 조합 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
제안된 크기
텍스트 스타일 라디오 버튼들의 경우, 다음 항목 높이들을 제안합니다. GRC 또는 프로그램 코드로부터 라디오 버튼들을 생성할 때 이 값들을 사용하는 것을 권장합니다.
-
서브타입 dy (픽셀) DG_BT_TEXT 18 DG_BT_PUSHTEXT 20
설명
라디오 버튼은 동일한 다이얼로그 또는 탭 페이지의 다른 라디오 버튼들과 함께 그룹화될 수 있습니다. 그룹화 정보는 GRC에서만 지정할 수 있습니다. (사용자 액션 또는 프로그램 코드로 인해) 어떤 그룹의 라디오 버튼을 켜면, DG는 자동으로 해당 그룹의 다른 라디오 버튼들을 끕니다.
Rich Edit 컨트롤의 GRC 사양
RichEdit x y dx dy fontSpec [readonlyFlag] scrollMode
여기서 x와 y는 Rich Edit 컨트롤의 좌상단 픽셀 좌표입니다. dx와 dy는 컨트롤의 너비와 높이의 픽셀 크기입니다. fontSpec은 컨트롤 글꼴의 크기와 스타일을 선언합니다. scrollMode는 컨트롤이 수평 그리고/또는 수직 스크롤 바를 가져야 하는지 여부를 정의합니다.
fontSpec의 가능한 값은 다음과 같습니다:
-
Value DGSetItemFont에서 사용하는 DG 상수 조합 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
readonlyFlag의 가능한 값은 다음과 같습니다:
-
값 의미 editable Rich Edit 컨트롤은 편집 가능합니다. readOnly Rich Edit 컨트롤은 읽기 전용입니다.
scrollMode의 가능한 값은 다음과 같습니다:
-
값 의미 HScroll Rich Edit 컨트롤은 수평 스크롤 바를 갖고 있습니다. VScroll Rich Edit 컨트롤은 수직 스크롤 바를 갖고 있습니다. HVScroll Rich Edit 컨트롤은 수평, 수직 스크롤 바를 모두 갖고 있습니다. NoScroll Rich Edit 컨트롤은 스크롤 바를 갖고 있지 않습니다.
스크롤 바의 GRC 사양
ScrollBar x y dx dy pageSize min max [styleFlag]
여기서 x와 y는 스크롤 바의 좌상단 코너의 픽셀 좌표입니다. dx와 dy는 컨트롤의 너비와 높이의 픽셀 크기입니다. pageSize는 스크롤 바의 페이지 크기를 정의합니다. (자세한 것은 설명을 보십시오) min과 max는 스크롤 바의 초기 범위를 지정합니다. 선택적인 styleFlag 파라미터는 OR(|) 연산자를 이용하여 proportional, focusable, 그리고 autoscroll flag들을 조합한 값이 될 수 있습니다.
proportional flag의 가능한 값은 다음과 같습니다:
-
값 의미 Normal 일반 스크롤 바입니다. 비례적이지 않습니다. Proportional 비례적인 스크롤 바입니다. 페이지 크기가 변경되었을 때 스크롤 박스 크기는 자동으로 변경됩니다.
focusable flag의 가능한 값은 다음과 같습니다:
-
값 의미 Focusable 스크롤 바는 키보드 포커스를 가질 수 있습니다. NonFocusable 스크롤 바는 키보드 포커스를 가질 수 없습니다.
autoscroll flag의 가능한 값은 다음과 같습니다:
-
값 의미 AutoScroll 스크롤 바는 스크롤 바 지정 이벤트들을 자체적으로 처리합니다. 다이얼로그 콜백 함수는 시작, 마침, 그리고 추적을 하는 동안 알림을 받게 됩니다. NoAutoScroll 스크롤 바는 DG_TSM_THUMBTRACK 서브 메시지만 처리합니다. 다른 서브 메시지들은 다이얼로그 콜백 함수에 의해 처리되어야 합니다. 그래서 애플리케이션은 이벤트에 따라 스크롤 박스를 이동시킬 책임이 있습니다.
설명
사용자가 스크롤 바의 회색 영역을 클릭했을 때, 또는 Windows에서 스크롤 바가 키보드 포커스를 갖고 있는 동안 PageUp 또는 PageDown 키를 눌렀을 때, 스크롤 박스 위치는 페이지 크기의 값만큼 변경됩니다. 페이지 크기는 GRC로부터 초기화됩니다.
구분자 항목의 GRC 사양
Separator x y dx dy
여기서 x와 y는 구분자 항목의 좌상단 코너의 픽셀 좌표입니다. dx와 dy는 컨트롤의 너비와 높이의 픽셀 크기입니다.
설명
구분자 항목이 GRC 또는 프로그램 코드로부터 생성되었을 때, DG는 지정한 수평 및 수직 크기를 통해 타입을 결정합니다. 만약 두 크기가 모두 3 픽셀보다 크면, DG는 직사각형 구분자를 생성합니다. 만약 수평 또는 수직 크기만 3 픽셀보다 크면, DG는 각각 수평 또는 수직 구분자 라인을 생성합니다.
슬라이더 바의 GRC 사양
Slider x y dx dy stepVal min max [sliderStyle]
여기서 x와 y는 슬라이더 바의 좌상단 코너의 픽셀 좌표입니다. dx와 dy는 컨트롤의 너비와 높이의 픽셀 크기입니다. 만약 stepVal이 0이면, tick 마크 그리기를 비활성화합니다; 그 외에는 tick 마크가 활성화되고 stepVal은 다음 공식에 따라 슬라이더 바의 페이지 크기를 정의합니다: pageSize = (max - min) / stepVal (자세한 것은 설명을 보십시오) min와 max는 슬라이더 바의 초기 범위를 지정합니다. 선택적인 sliderStyle flag는 슬라이더 바의 서브타입을 지정합니다. 만약 이 flag를 생략하면, 기본적으로 DG_SL_BOTTOMRIGHT 서브타입이 세트됩니다.
sliderStyle의 가능한 값은 다음과 같습니다:
-
값 의미 BottomRight DG_SL_BOTTOMRIGHT 서브타입이 세트되었습니다. TopLeft DG_SL_TOPLEFT 서브타입이 세트되었습니다.
설명
슬라이더의 위치는 최소 및 최대 값을 기반으로 현재 값으로부터 파생됩니다. 상대적인 위치는 다음 공식을 이용하여 계산됩니다: relative position = (value - minimum) / (maximum - minimum) Windows의 경우, 만약 최소 값과 최대 값이 동일하면, 슬라이더는 컨트롤의 시작 부분에 위치하게 됩니다. 그러나 Macintosh의 경우, 이 경우에 슬라이더 바는 비활성화됩니다.
사용자가 슬라이더 바의 바 영역을 클릭하거나, Windows의 경우 슬라이더 바가 키보드 포커스를 갖고 있는 동안 PageUp 또는 PageDown 키를 누르면, 슬라이더 위치는 페이지 크기의 값만큼 변경됩니다. 페이지 크기는 다음 공식에 따라 GRC로부터 초기화됩니다: pageSize = (maximum - minimum) / stepVal (stepVal은 0보다 커야 합니다) 스크롤 바의 범위가 DGSetItemMinLong 또는 DGSetItemMaxLong에 의해 변경되었을 때, pageSize 값은 자동으로 계산되고 tick 마크가 활성화되었다면 이 새로운 페이지 크기에 따라 다시 그려집니다. 만약 stepVal이 GRC에서 0으로 세트되면, tick 마크는 그려지지 않습니다. 이 경우, 페이지 크기는 DG에 의해 정의되지 않습니다. 슬라이더 바는 시스템 기본 값을 사용합니다.
스핀 컨트롤의 GRC 사양
SingleSpin x y dx dy min max EditSpin x y dx dy editID
여기서 x와 y는 스핀 컨트롤의 좌상단 코너의 픽셀 좌표입니다. dx와 dy는 컨트롤의 너비와 높이의 픽셀 크기입니다. min과 max는 싱글 스핀 컨트롤의 초기 범위를 지정합니다. editID는 Edit 스핀 컨트롤과 연관된 Edit 컨트롤의 다이얼로그 항목 식별자입니다. Edit 컨트롤의 타입은 정수 또는 양의 정수(DG_ET_INT 또는 DG_ET_POSINT)이어야 하며, editID는 Edit 스핀 컨트롤의 ID보다 1 작아야 합니다.
설명
싱글 스핀 컨트롤 함수들은 단순화된 스크롤 바의 일종입니다. 이것은 다이얼로그 아무 곳에 배치될 수 있으며 스크롤 입력을 제공할 필요가 있을 때 사용됩니다. Windows의 경우, 싱글 스핀 컨트롤을 만들 때 DG는 지정된 수평 및 수직 크기에 따라 자동으로 컨트롤의 방향을 결정합니다. 만약 수평 크기가 수직 크기보다 크면, DG는 수평 스핀 컨트롤을 생성합니다. 반대의 경우 DG는 수직 스핀 컨트롤을 생성합니다. Macintosh의 경우, 수직 싱글 스핀 컨트롤만 지원합니다.
Edit 스핀 컨트롤은 항상 정수 또는 양의 정수 타입의 Edit 컨트롤과 연관됩니다. Edit 스핀 컨트롤과 Edit 컨트롤은 생성되었을 때에만 서로 연관될 수 있습니다. 다이얼로그 항목 리스트 안에서 Edit 스핀 컨트롤은 Edit 컨트롤 바로 다음에 있어야 하며, Edit 컨트롤의 바로 오른쪽 위치에 있어야 합니다. Windows의 경우, DG는 이러한 컨트롤들을 닫아서 싱글 컨트롤처럼 보이게 되는데 이것을 때때로 스피너(spinner) 컨트롤이라고 합니다. Edit 스핀 컨트롤들은 항상 수직 방향을 갖고 있습니다. 위 또는 아래 화살표를 클릭하면 두 컨트롤의 값이 모두 증가 또는 감소합니다. Windows의 경우, Edit 컨트롤이 키보드 포커스를 갖게 되면, 마우스 클릭뿐만 아니라 위 또는 아래 화살표 키를 눌러서도 컨트롤들의 값을 변경할 수 있습니다.
스플리터 컨트롤의 GRC 사양
Splitter x y dx dy [Transparent]
여기서 x와 y는 스플리터의 좌상단 코너의 픽셀 좌표입니다. dx와 dy는 항목의 너비와 높이의 픽셀 크기입니다. 투명한 스플리터를 그리기 위해 선택적인 Transparent flag를 세트하십시오. 만약 선택적인 Transparent flag를 생략하면, 일반 스플리터 컨트롤이 그려집니다. 수평 및 수직 서브타입은 컨트롤의 항목 너비와 높이에 따라 달라집니다. 그러나 orientation 프로퍼티는 코드로부터 세트됩니다.
제안된 크기
스플리터 컨트롤의 두께는 리소스에서 정의됩니다. - 제안된 최소 두께는 7 픽셀입니다.
정적 텍스트의 GRC 사양
LeftText x y dx dy fontSpec [textFlag] [frameType] "text" CenterText x y dx dy fontSpec [textFlag] [frameType] "text" RightText x y dx dy fontSpec [textFlag] [frameType] "text"
여기서 x와 y는 정적 텍스트 컨트롤의 좌상단 코너의 픽셀 좌표입니다. dx와 dy는 컨트롤의 너비와 높이의 픽셀 크기입니다. fontSpec은 컨트롤 text의 글꼴 크기와 스타일을 선언합니다. 선택적인 textFlag 파라미터는 OR(|) 연산자를 이용하여 vertical alignment 그리고 truncation flag가 결합한 값이 될 수 있습니다. 만약 이 파라미터를 생략하면, 텍스트는 위로 정렬되고 truncation이 적용되지 않습니다. 만약 선택적인 frameType flag를 생략하면, 정적 텍스트 컨트롤은 프레임 없이 그려집니다.
fontSpec의 가능한 값은 다음과 같습니다:
-
값 DGSetItemFont에서 사용하는 DG 상수 조합 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
vertical alignment flag의 가능한 값은 다음과 같습니다:
-
값 의미 vTop DG_IS_VTOP flag가 세트되었습니다. vCenter DG_IS_VCENTER flag가 세트되었습니다. vBottom DG_IS_VBOTTOM flag가 세트되었습니다.
truncation flag의 가능한 값은 다음과 같습니다:
-
값 의미 noTrunc DG_IS_NOTRUNC flag가 세트되었습니다. truncEnd DG_IS_TRUNCEND flag가 세트되었습니다. truncMiddle DG_IS_TRUNCMIDDLE flag가 세트되었습니다.
frameType의 가능한 값은 다음과 같습니다:
-
값 의미 Default DG_FT_NONE 프레임 타입이 세트되었습니다. StaticEdge DG_FT_STATIC 프레임 타입이 세트되었습니다. ClientEdge DG_FT_CLIENT 프레임 타입이 세트되었습니다. ModalFrame DG_FT_MODAL 프레임 타입이 세트되었습니다.
제안된 크기
- 정적 텍스트 컨트롤들에 대하여 다음 항목 높이 값들을 권장합니다:
-
글꼴 크기 픽셀 단위의 항목 높이 DG_IS_EXTRASMALL 12 DG_IS_SMALL 14 DG_IS_LARGE 16 - 만약 정적 텍스트 컨트롤이 프레임을 갖고 있다면, 프레임 직사각형에 대한 충분한 공간을 확보하기 위해 4 픽셀씩 값을 증가시킵니다.
설명
정적 텍스트 컨트롤은 멀티 라인 텍스트를 포함할 수 있습니다. 만약 truncation을 지정하지 않았고 텍스트가 컨트롤 직사각형 안에 수평으로 다 들어맞지 않으면, DG는 자동으로 단어 경계에 따라 멀티 라인으로 줄바꿈을 합니다. 수직 방향으로 모든 텍스트 라인들이 표시되지 않습니다. 그래서 컨트롤이 모두 표시할 만큼 높이가 큰 경우에만 나머지 라인들이 보여질 수 있습니다. 텍스트에 new line (\n) 문자들을 삽입하여 명시적으로 줄바꿈을 할 수 있습니다.
특정 truncation을 지정했을 때, 상황은 약간 달라집니다. 우선 DG는 컨트롤의 직사각형에 전체 높이 라인을 얼마나 많이 표시할 수 있는지 계산합니다. 그리고 나서 중간이나 끝에 생략 문자를 이용하여 텍스트를 절단합니다. 마지막으로 획득한 텍스트를 지정한 수평 및 수직 정렬에 따라 justify합니다.
때때로 정적 텍스트를 가진 컨트롤에 라벨을 붙일 때, 양 컨트롤의 높이를 동일한 값으로 세트하고 GRC에서 정적 텍스트에 vCenter alignment flag를 할당하는 것을 권장합니다. 이러한 방법은 정적 텍스트가 라벨이 붙은 컨트롤에 수직 방향으로 중앙 정렬되게 해줍니다.
탭 컨트롤의 GRC 사양
NormalTab x y dx dy dlgID1 iconID1 "labelText1" ... dlgIDi iconIDi "labelTexti" ... dlgIDn iconIDn "labelTextn" SimpleTab x y dx dy [frameType] dlgID1 ... dlgIDi ... dlgIDn
여기서 x와 y는 탭 컨트롤의 좌상단 코너의 픽셀 좌표입니다. dx와 dy는 컨트롤의 너비와 높이의 픽셀 크기입니다. dlgIDi, iconIDi 그리고 labelTexti (1 <= i <= n) 파라미터들은 탭 페이지들과 탭 항목들의 n 조각들을 초기화합니다. dlgIDi는 GRC의 i번째 탭 페이지 리소스의 리소스 ID입니다. iconIDi와 labelTexti는 i번째 탭 항목의 아이콘과 라벨 텍스트(두 인용구 마크 사이에 주어짐)를 정의합니다. 만약 선택적인 frameType flag를 생략하면, 단순 탭 컨트롤은 3차원 raised border와 함께 그려집니다. 만약 프레임이 없는 단순 탭 컨트롤을 원한다면, 이 flag를 noFrame으로 세트하십시오.
iconIDi의 가능한 값은 다음과 같습니다:
-
값 의미 NoIcon i번째 탭 항목은 아이콘을 갖고 있지 않습니다. 129 <= iconID <= SHRT_MAX i번째 탭 항목은 리소스에 주어진 아이콘을 갖고 있습니다. 아이콘의 크기는 16x16 픽셀이어야 합니다.
frameType의 가능한 값은 다음과 같습니다:
-
값 의미 noFrame 단순 탭 컨트롤은 프레임을 갖지 않게 됩니다. frame 단순 탭 컨트롤은 3차원 raised border를 갖게 됩니다.
트리 뷰의 GRC 사양
SingleSelTreeView x y dx dy fontSpec niWidth niHeight siWidth siHeight editable dragable maxChCount [noRootButton] MultiSelTreeView x y dx dy fontSpec niWidth niHeight siWidth siHeight editable dragable maxChCount [noRootButton]
여기서 x와 y는 트리 뷰의 좌상단 코너의 픽셀 좌표입니다. dx와 dy는 컨트롤의 너비와 높이의 픽셀 크기입니다. fontSpec은 항목 라벨들의 글꼴 크기와 스타일을 선언합니다. niWidth, niHeight 그리고 siWidth, siHeight는 각각 일반 및 상태 아이콘의 너비와 높이의 픽셀 크기입니다. editable과 dragable flag들은 항목 라벨들이 편집가능한지, 그리고 드래그 앤 드롭 기능이 활성화되어 있는지 여부를 정의합니다. 만약 선택적인 noRootButton flag가 존재하면, Windows의 경우 루트 항목은 플러스(+)나 마이너스(-) 버튼을 갖지 않습니다.
fontSpec의 가능한 값은 다음과 같습니다:
-
값 DGSetItemFont에서 사용하는 DG 상수 조합 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
editable의 가능한 값은 다음과 같습니다:
-
값 의미 labelEdit DG_TVT_LABELEDIT flag가 세트되었습니다. noLabelEdit DG_TVT_LABELEDIT flag가 세트되지 않았습니다.
dragable의 가능한 값은 다음과 같습니다:
-
값 의미 dragDrop DG_TVT_DRAGDROP flag가 세트되었습니다. noDragDrop DG_TVT_DRAGDROP flag가 세트되지 않았습니다.
설명
라벨 편집 및 드래그 앤 드롭 기능은 GRC에서만 활성화될 수 있습니다. 각각 labelEdit와 dragDrop flag를 세트하여 활성화할 수 있습니다. 트리 뷰는 DG_TVT_LABELEDIT flag를 갖고 있을 때에만 DG_TVCF_EDITBEGIN 또는 DG_TVCF_EDITEND action flag와 함께 DG_MSG_CHANGE 메시지를 받을 수 있습니다.
유저 컨트롤의 GRC 사양
UserControl x y dx dy cdefID [data1 ... datai ... datan]
여기서 x와 y는 유저 컨트롤의 좌상단 코너의 픽셀 좌표입니다. dx와 dy는 컨트롤의 너비와 높이의 픽셀 크기입니다. cdefID는 컨트롤 정의 프로시저 ID입니다. (범위는 512 <= ldefID <= 999 이어야 함) 선택적인 datai (1 <= i <= n) short 파라미터들은 유저 컨트롤을 초기화할 수도 있습니다. (n은 0이 될 수 있음) 이 파라미터들은 10진수 또는 16진수 포맷으로 주어질 수 있으며 여러 라인으로 작성될 수 있습니다.
유저 아이템의 GRC 사양
UserItem x y dx dy [PartialUpdate] [frameType]
여기서 x와 y는 유저 아이템의 좌상단 코너의 픽셀 좌표입니다. dx와 dy는 항목의 너비와 높이의 픽셀 크기입니다. 부분적인 업데이트를 활성화하려면 선택적인 PartialUpdate flag를 세트하십시오. 만약 선택적인 frameType flag를 생략하면, 유저 아이템은 프레임 없이 그려집니다.
frameType의 가능한 값은 다음과 같습니다:
-
값 의미 Default DG_FT_NONE 프레임 타입이 세트되었습니다. StaticEdge DG_FT_STATIC 프레임 타입이 세트되었습니다. ClientEdge DG_FT_CLIENT 프레임 타입이 세트되었습니다. ModalFrame DG_FT_MODAL 프레임 타입이 세트되었습니다.
요구사항
- 버전: DG 2.2.0 또는 이후
- 헤더: DG.h
참고사항
다이얼로그 타입의 GRC 사양, 다이얼로그 도움말의 GRC 사양, 이미지 타입의 GRC 사양
체크박스, 날짜 & 시간 컨트롤, Edit 컨트롤, 그룹 박스, 리스트 박스, 리스트 뷰, 팝업 컨트롤, 진행 바, 푸시 버튼, 푸시 메뉴 컨트롤, 라디오 버튼, Rich Edit 컨트롤, 스크롤 바, 구분자 항목, 슬라이더 바, 스핀 컨트롤, 정적 텍스트, 탭 컨트롤, 트리 뷰, 유저 컨트롤, 유저 아이템
다이얼로그 항목 타입, DGSetItemFont, DGAppendDialogItem, DGSetItemMinLong, DGSetItemMaxLong