다음을 통해 공유


카렛 정보

시스템은 메시지 큐당 하나의 caret를 제공합니다. 창은 키보드 포커스가 있거나 활성 상태인 경우에만 캐리트를 만들어야 합니다. 키보드 포커스를 잃거나 비활성 상태가 되기 전에 창에서 캐리트를 제거해야 합니다. 키보드 입력에 대한 자세한 내용은 키보드 입력을 참조하세요.

CreateCaret 함수를 사용하여 caret에 대한 매개 변수를 지정합니다. 시스템은 caret의 위치, 너비 및 높이로 지정된 사각형 내의 픽셀 색을 반전하여 캐리트를 형성합니다. 너비와 높이는 논리 단위로 지정됩니다. 따라서 caret의 모양에는 창의 매핑 모드가 적용됩니다.

이 섹션에서 설명하는 항목은 다음과 같습니다.

Caret 표시 유형

캐리트가 정의되면 ShowCaret 함수를 사용하여 캐리트를 표시합니다. 캐리트가 나타나면 자동으로 깜박이기 시작합니다. 단색 캐리트를 표시하기 위해 시스템은 사각형의 모든 픽셀을 반전합니다. 회색 캐리트를 표시하기 위해 시스템은 다른 모든 픽셀을 반전합니다. 비트맵 캐리트를 표시하기 위해 시스템은 비트맵의 흰색 비트만 반전합니다.

캐리트를 반전하는 데 필요한 경과 시간(밀리초)을 깜박임 시간이라고 합니다. 메시지 큐를 소유하는 스레드에 메시지를 처리하는 메시지 펌프가 있는 한 케어가 깜박입니다.

사용자는 제어판 사용하여 캐럿의 깜박임 시간을 설정할 수 있으며 애플리케이션은 사용자가 선택한 설정을 준수해야 합니다. 애플리케이션은 GetCaretBlinkTime 함수를 사용하여 캐럿의 깜박임 시간을 확인할 수 있습니다. 사용자가 제어판 애플릿과 같이 깜박임 시간을 조정할 수 있는 애플리케이션을 작성하는 경우 SetCaretBlinkTime 함수를 사용하여 깜박임 시간의 속도를 지정된 시간(밀리초)으로 설정합니다.

플래시 시간은 캐리트의 디스플레이를 표시, 반전 및 복원하는 데 필요한 경과 시간(밀리초)입니다. 캐리트의 플래시 시간은 깜박임 시간의 두 배입니다.

Caret 위치

GetCaretPos 함수를 사용하여 캐럿의 위치를 확인할 수 있습니다. 클라이언트 좌표에서 위치는 GetCaretPos의 매개 변수로 지정된 구조체에 복사됩니다. 애플리케이션은 SetCaretPos 함수를 사용하여 창에서 캐럿을 이동할 수 있습니다. 창은 캐럿을 이미 소유하고 있는 경우에만 캐럿을 이동할 수 있습니다. SetCaretPos는 캐럿이 표시되는지 여부에 관계없이 캐럿을 이동할 수 있습니다.

Caret 제거

캐럿을 숨김으로써 일시적으로 제거하거나 캐럿을 제거하여 영구적으로 제거할 수 있습니다. 케어를 숨기려면 HideCaret 함수를 사용합니다. 이는 애플리케이션이 메시지를 처리하는 동안 화면을 다시 그려야 하지만 애용을 방해하지 않아야 하는 경우에 유용합니다. 애플리케이션이 그리기를 완료하면 ShowCaret 함수를 사용하여 캐럿을 다시 표시할 수 있습니다. 캐리트를 숨기면 셰이프가 삭제되거나 삽입 지점이 무효화되지 않습니다. 캐리트를 숨기는 것은 누적입니다. 즉, 애플리케이션이 HideCaret를 다섯 번 호출하는 경우 캐리트가 다시 나타나기 전에 ShowCaret 를 다섯 번 호출해야 합니다.

화면에서 캐리트를 제거하고 모양을 삭제하려면 DestroyCaret 함수를 사용합니다. DestroyCaret 는 현재 작업에 관련된 창이 캐리트를 소유하는 경우에만 캐리트를 파괴합니다.