푸시 버튼
푸시 버튼은 작업을 수행하는 데 사용되는 작은 직사각형 다이얼로그 항목입니다. DG에는 2가지 기본 타입의 푸시 버튼이 있습니다: 텍스트 및 아이콘 스타일의 버튼, 그리고 버튼이 팝업 메뉴와 결합된 분할 버튼이라는 특별한 타입의 푸시 버튼이 있습니다.
항목 타입
- DG_ITM_BUTTON
서브 타입
-
서브 타입 의미 DG_BT_ICONTEXT 단순한 텍스트 버튼입니다.
DG_BT_ICON 단순한 아이콘 버튼입니다.
DG_BT_SPLIT 옆에 팝업이 붙어 있는 아이콘 그리고/또는 텍스트 버튼입니다.
GRC 사양
Button x y dx dy fontSpec [appearanceType] "text" IconButton x y dx dy iconID SplitButton x y dx dy fontSpec [appearanceType] iconID "text"
x와 y는 푸시 버튼의 좌상단 모서리의 픽셀 좌표입니다. dx와 dy는 컨트롤의 폭과 높이의 픽셀 크기입니다. fontSpec은 버튼 text의 글꼴 크기와 스타일을 선언합니다. iconID는 아이콘-스타일 푸시 버튼의 아이콘 리소스 ID를 정의합니다.
fontSpec의 가능한 값입니다:
-
값 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
appearanceType의 가능한 값입니다: (Macintosh에서의 푸시 버튼에만 영향을 미침)
-
값 의미 Normal 이것은 기본값입니다. 푸시 버튼은 normal edge입니다. (DG_BA_NORMAL) BevelEdge 푸시 버튼은 bevel edge입니다. (DG_BA_BEVEL) RoundedBevelEdge 푸시 버튼은 round bevel edge입니다. (DG_BA_ROUNDEDBEVEL)
제안된 크기
간단한 텍스트 푸시 버튼의 경우 제안된 항목 높이는 20픽셀입니다. Windows에서 DG는 초점 직사각형을 위한 충분한 공간을 만들기 위해 간단한 텍스트 푸시 버튼의 높이를 4 픽셀씩 자동으로 증가시킵니다.
아이콘 버튼의 경우 버튼 크기는 아이콘 크기보다 양방향으로 8 픽셀 이상 커야 합니다. GRC에서 이러한 값을 사용하거나 프로그램 코드에서 푸시 버튼을 생성하는 것이 좋습니다.
분할 버튼의 경우 버튼 크기는 아이콘 크기보다 높이가 8 픽셀 이상 커야 합니다. 이 경우 버튼에 이미지는 없고 텍스트만 있다면 제안된 버튼 높이가 20 픽셀입니다. 아이콘의 크기를 텍스트 크기로 조정하는 것이 좋습니다. 오른쪽의 화살표 크기는 버튼 높이를 기준으로 합니다. (Mac에서는 이 높이가 3개 버튼 높이만 됩니다)
메시지
-
메시지 의미 DG_MSG_CLICK 푸시 버튼을 클릭했습니다. 메시지 데이터 파라미터는 항상 0입니다. DG_MSG_CHANGE 화살표 팝업에서 선택이 변경되었습니다. 메시지 데이터 파라미터는 항상 0입니다.
수정 Flag
푸시 버튼의 수정 flag는 사용자가 버튼을 클릭하고 DG가 DG_MSG_CLICK 메시지를 생성할 때 세트합니다. 수정 flag의 상태를 가져오거나 리셋(지우기)하려면 DGModified 또는 DGResetModified를 사용하십시오.
또한 화살표 팝업에서 선택한 요소를 변경하고 DG_MSG_CHANGE 메시지를 생성하는 사용자 작업에 의해 flag가 설정될 수 있습니다.
설명
사용자가 푸시 버튼을 클릭하면 다이얼로그 콜백 함수는 DG_MSG_CLICK 메시지를 수신합니다. 만약 애플리케이션이 콜백 함수에서 0이 아닌 값을 리턴하면 다이얼로그는 닫히게 됩니다. 리턴 값이 0인 것은 애플리케이션이 다이얼로그에 머물기를 원한다는 것을 의미합니다. 탭 컨트롤 페이지에서 푸시 버튼을 클릭하여 다이얼로그를 닫을 수 없다는 점을 참고하십시오.
간단한 텍스트 푸시 버튼(DG_BT_TEXT)의 텍스트는 각각 DGSetItemText, DGCatItemText, DGGetItemText에 의해 설정, 수정, 가져올 수 있습니다. 텍스트는 모든 유형의 DG 글꼴로 표시할 수 있습니다. 글꼴은 GRC뿐만 아니라 DGSetItemFont 함수로 지정할 수 있습니다. DGGetItemFont를 사용하여 현재 푸시 버튼에 할당된 글꼴을 가져옵니다.
아이콘 푸시 버튼(DG_BT_ICON)의 아이콘은 리소스 ID 또는 아이콘의 핸들에 의해 할당될 수 있습니다. 푸시 버튼의 아이콘을 설정하고 가져오려면 DGSetItemImageId 또는 DGSetItemImage 그리고 DGGetItemImageId 또는 DGGetItemImage를 각각 사용하십시오. 아이콘 리소스 ID는 GRC에서도 정의할 수 있습니다.
분할 버튼(DG_BT_SPLIT)의 텍스트는 각각 DGSplitButtonSetItemText, DGSplitButtonGetItemText에 의해 설정, 수정, 가져올 수 있습니다. 텍스트는 모든 유형의 DG 글꼴로 표시할 수 있습니다. 글꼴과 텍스트 크기는 GRC뿐만 아니라 DGSplitButtonSetItemFont 함수로 지정할 수 있습니다. DGSplitButtonGetItemFont를 사용하여 분할 버튼에 현재 할당된 글꼴 또는 크기를 가져옵니다. 분할 버튼의 아이콘은 리소스 ID 또는 아이콘의 핸들에 의해 할당될 수 있다. 분할 버튼의 아이콘을 설정하고 가져오려면 각각 DGSplitButtonSetItemIcon와 DGSplitButtonGetItemIcon을 사용하십시오. 아이콘 리소스 ID는 GRC에서도 정의할 수 있습니다. 분할 버튼의 정렬을 설정할 수 있습니다. 정렬 타입을 설정하기 위해 DGSplitButtonSetAlignment 함수를 사용하며, 정렬 값을 얻기 위해 DGSplitButtonGetAlignment 함수를 사용합니다. 분할 버튼으로 설정된 아이콘이 텍스트 왼쪽에 표시됩니다. 만약 분할 버튼이 올바르게 정렬된 경우 아이콘이 텍스트 오른쪽에 나타납니다. 팝업 메뉴는 DGSplitButtonAppendItem과 함께 항목을 이어붙이거나, DGSplitButtonAppendSeparator와 함께 분리자를 이어붙이거나, DGSplitButtonInsertItem과 함께 항목을 삽입하거나, DGSplitButtonInsertSeparator와 함께 분리자를 삽입하거나, DGSplitButtonDeleteItem과 함께 항목을 제거하여 관리할 수 있습니다. 항목 메뉴의 데이터는 DGSplitButtonSetItemData 또는 DGSplitButtonGetItemData로 설정하거나 가져올 수 있습니다. 각 메뉴 항목을 활성화할 수 있으며, DGSplitButtonEnableItem, DGSplitButtonDisableItem 또는 DGSplitButtonSetItemStatus로 비활성화할 수 있으며, DGSplitButtonIsItemEnabled로 항목 상태에 대한 정보를 가져올 수 있습니다. 팝업 메뉴에는 항목뿐만 아니라 구분자도 포함될 수 있습니다. 메뉴 항목이 구분자인지 아닌지 여부를 알아내려면, DGSplitButtonIsSeparatorItem 함수를 사용합니다. 분할 버튼에 포함된 항목의 수는 DGSplitButtonGetItemCount로 가져올 수 있습니다. 분할 버튼에 있는 팝업이 다시 채워지는 동안 그리기 비활성화를 하고 메뉴가 해당 팝업 항목들로 다 채워지는 동안 버튼의 그리기를 활성화하여 깜빡임을 방지할 수 있습니다. 다음 함수를 이용하면 됩니다: DGSplitButtonEnableDraw와 DGSplitButtonDisableDraw.
요구사항
- 버전: DG 18.0.0 또는 이후
- 헤더: DG.h
참고사항
다이얼로그 항목 타입
DGCatItemText,
DGGetItemFont,
DGGetItemImage,
DGGetItemImageId,
DGGetItemText,
DGModified,
DGResetModified,
DGSetItemFont,
DGSetItemImage,
DGSetItemImageId,
DGSetItemText,
DGSplitButtonSetItemText,
DGSplitButtonGetItemText,
DGSplitButtonSetItemFont,
DGSplitButtonGetItemFont,
DGSplitButtonSetItemIcon,
DGSplitButtonGetItemIcon,
DGSplitButtonSetAlignment,
DGSplitButtonGetAlignment,
DGSplitButtonAppendItem,
DGSplitButtonAppendSeparator,
DGSplitButtonInsertItem,
DGSplitButtonInsertSeparator,
DGSplitButtonDeleteItem,
DGSplitButtonSetItemData,
DGSplitButtonGetItemData,
DGSplitButtonEnableItem,
DGSplitButtonDisableItem,
DGSplitButtonSetItemStatus,
DGSplitButtonIsItemEnabled,
DGSplitButtonIsSeparatorItem,
DGSplitButtonGetItemCount,
DGSplitButtonEnableDraw,
DGSplitButtonDisableDraw,
콜백 함수
DG_MSG_CLICK,
DG_MSG_CHANGE